-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Open
Labels
C-bugCategory: This is a bug.Category: This is a bug.I-types-nominatedNominated for discussion during a types team meeting.Nominated for discussion during a types team meeting.P-highHigh priorityHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.
Description
type Alias<const B: bool> = [u8; B];This previously didn't compile but started to in 1.83, not sure which PR but probably something like #129137.
This is because the RHS of free type aliases are not well formed checked. Previously we caught this anyway by implicitly having an anon const with type usize that wrapped the usage of B which caused a separate type checker error when type checking the anon const.
Nowadays we just directly represent it without an anon const and rely on WellFormed([u8; B]) checking that B is of type usize. It might be possible to generate the list of wf predicates for the RHS of free type aliases and then only prove the ConstArgHasType clauses to fix this?
cc @rust-lang/types
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.I-types-nominatedNominated for discussion during a types team meeting.Nominated for discussion during a types team meeting.P-highHigh priorityHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-typesRelevant to the types team, which will review and decide on the PR/issue.Relevant to the types team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.Performance or correctness regression from one stable version to another.