Thanks to visit codestin.com
Credit goes to github.com

Skip to content

set_random_source never returns Err(false) #230

@y21

Description

@y21

RAND_SOURCE.set(Box::new(Box::new(source))).map_err(|s| s.as_ref().type_id() != TypeId::of::<&DefaultRandomSource>())

This looks like it's calling .type_id() on a Box<dyn RandomSource> (not on the underlying trait object), and as a result always returns the fixed TypeId of the box. Therefore this function can never return Err(false). The documentation for it however says:

If the source has already been specified Err is returned with a bool indicating if the set failed because method was previously invoked (true) or if the default source is already being used (false).

I'm currently working on improving clippy's type_id_on_box lint and it found this instance

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions