Skip to content

Library Trait Evolution Experiment #377

Description

@lcnr

Summary

Trait evolution and trait hierarchy refactoring is a long-time pain point for Rust crates and especially the standard library. As crates evolve and grow, needs to restructure trait hierarchy to accommodate richer functionality often arises, both in the standard library and the broader Rust ecosystem.

This will be even more of an issue once we add new implicit default auto trait bounds to support Immobile types and guaranteed destructors or the Sized Hierarchy. For example in trait Trait { fn foo<T>(); } the generic parameter T will get an implicit T: Move bound whose removal is a breaking change. This makes immobile types a lot less useable with existing traits.

Info

What is this issue?

This issue represents an active experiment. It is meant to be used for
the group to post updates to the lang team (and others) in a lightweight
fashion. Please do not use the comments here for discussion, that should be kept
in the Zulip stream (discussion comments here will be marked as off-topic).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions