Skip to content

get rid of Shrinker proxy trait #55

@BurntSushi

Description

@BurntSushi

In a bygone era, I invented the Shrinker trait as a proxy so the shrink method of Arbitrary could return any iterator without regard to its underlying type. This was because Box<Iterator<A>> didn't itself implement Iterator<A>.

Now that DST is here and Rust has a more coherent story regarding trait object safety, it would be nice to remove this proxy trait and return Box<Iterator> instead.

I started working on this, but I ran into some bugs: rust-lang/rust#20605 and rust-lang/rust#20953. Once those are fixed, I think we can drop Shrinker.

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