This PR updates the styling and wording of error messages produced in inductive type declarations and anonymous constructor notation, including hints for inferable constructor visibility updates.
18 lines
2.1 KiB
Text
18 lines
2.1 KiB
Text
inductiveUnivErrorMsg.lean:1:0-3:27: error: Resulting type is of the form
|
|
Type ?u
|
|
but the universes of constructor arguments suggest that this could accidentally be a higher universe than necessary. Explicitly providing a resulting type will silence this error. Universe inference suggests using
|
|
Type u_1
|
|
if the resulting universe level should be at the above universe level or higher.
|
|
|
|
Explanation: At this point in elaboration, universe level unification has committed to using a resulting universe level of the form `?u+1`. Constructor argument universe levels must be no greater than the resulting universe level, and this condition implies the following constraint(s):
|
|
u_1 ≤ ?u+1
|
|
However, such constraint(s) usually indicate that the resulting universe level should have been in a different form. For example, if the resulting type is of the form `Sort (_ + 1)` and a constructor argument is in universe `Sort u`, then universe inference would yield `Sort (u + 1)`, but the resulting type `Sort (max 1 u)` would avoid being in a higher universe than necessary.
|
|
inductiveUnivErrorMsg.lean:5:0-7:29: error: Resulting type is of the form
|
|
Type ?u
|
|
but the universes of constructor arguments suggest that this could accidentally be a higher universe than necessary. Explicitly providing a resulting type will silence this error. Universe inference suggests using
|
|
Type u_1
|
|
if the resulting universe level should be at the above universe level or higher.
|
|
|
|
Explanation: At this point in elaboration, universe level unification has committed to using a resulting universe level of the form `?u+1`. Constructor argument universe levels must be no greater than the resulting universe level, and this condition implies the following constraint(s):
|
|
u_1 ≤ ?u+1
|
|
However, such constraint(s) usually indicate that the resulting universe level should have been in a different form. For example, if the resulting type is of the form `Sort (_ + 1)` and a constructor argument is in universe `Sort u`, then universe inference would yield `Sort (u + 1)`, but the resulting type `Sort (max 1 u)` would avoid being in a higher universe than necessary.
|