Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Const traits #106

Open
2 tasks
nikomatsakis opened this issue Jul 22, 2024 · 5 comments
Open
2 tasks

Const traits #106

nikomatsakis opened this issue Jul 22, 2024 · 5 comments

Comments

@nikomatsakis
Copy link
Contributor

Metadata
Owner(s) @fee1-dead
Team(s) lang, types
Goal document 2024h2/const-traits

Summary

Experiment with effects-based desugaring for "maybe-const" functionality

Tasks and status

@nikomatsakis nikomatsakis added this to the 2024h2 milestone Jul 22, 2024
@rust-lang rust-lang locked and limited conversation to collaborators Jul 25, 2024
@nikomatsakis
Copy link
Contributor Author

This issue is intended for status updates only.

For general questions or comments, please contact the owner(s) directly.

@fee1-dead
Copy link
Member

fee1-dead commented Jul 27, 2024

Update 2024-07-27:

  • Key developments: We recently landed my new proposed desugaring in #120639, which is a big step towards having a robust model of const traits in the type system.

@fee1-dead
Copy link
Member

Update 2024-08-25:

@fee1-dead
Copy link
Member

Update 2024-10-02:

  • Key developments: With the PR for supporting implied super trait bounds landed (#129499), the current implementation is mostly complete in that it allows most code that should compile, and should reject all code that shouldn't. Further testing is required, with our next steps being improving diagnostics (#131152), and fixing more holes before we'd be comfortable with adding const traits back to core.

@fee1-dead
Copy link
Member

Update 2024-11-20:

#131985 by @compiler-errors completely restructured the way const traits are desugared, which made the design easier to understand and more robust against our current unit tests. Since then, there had been significant development and cleanup for the feature, with #131968 #132118 #132168 #132169 #132227 #132275 #132344 #132366 #132368 #132479 #132823 among the ones that got merged, and #133216 #133218 that are still open.

With the recent work, we are very close to being able to dogfooding the feature on the standard library again, and the current implementation is the closest we have towards something that can be stabilized.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants