audit-ct-tidy: close milestone ct-tidy via ctt.tidy
This commit is contained in:
+13
-5
@@ -1732,13 +1732,18 @@ wording is fixed; the categories and their triggers are:
|
||||
|
||||
**Class-schema diagnostics** (validation of class declarations):
|
||||
|
||||
- `KindMismatch` — class param appears in applied position in any
|
||||
method signature (e.g., `f a` where `f` is the class param).
|
||||
- `InvalidSuperclassParam` — superclass `type` differs from the
|
||||
class's own `param`.
|
||||
- `ConstraintReferencesUnboundTypeVar` — a constraint mentions a
|
||||
type variable not bound by the surrounding `forall`.
|
||||
|
||||
A class param appearing in applied position (e.g., `f a` where `f`
|
||||
is the class param) is rejected earlier by the canonical-form
|
||||
validator as `BareCrossModuleTypeRef` — `f` is a bare,
|
||||
non-primitive name not declared as a `TypeDef` in the owning
|
||||
module — so the dedicated `KindMismatch` diagnostic was retired
|
||||
at iter ctt.3.
|
||||
|
||||
**Typecheck diagnostics** (per function body):
|
||||
|
||||
- `MissingConstraint` — body's residual constraint is not covered
|
||||
@@ -1758,9 +1763,12 @@ axis-5 (kind `*` only) covers the space.
|
||||
|
||||
- **Multi-parameter classes** (`class Foo a b where ...`). Schema
|
||||
rejects: `ClassDef.param` is a string, not a list.
|
||||
- **Higher-kinded class params** (`class Functor f`). Diagnostic
|
||||
S1 (`KindMismatch`) at class declaration if any method applies
|
||||
the param.
|
||||
- **Higher-kinded class params** (`class Functor f`). Rejected at
|
||||
workspace-load time: `BareCrossModuleTypeRef` from canonical-form
|
||||
validation fires before class-schema validation if any method
|
||||
body uses the param as a `Type::Con` head — bare non-primitive
|
||||
names must be declared as a `TypeDef` in the owning module, and
|
||||
a class param is not.
|
||||
- **Higher-rank polymorphism** (`forall a. (forall b. b -> b) -> a`).
|
||||
Already rejected at parse time per the typeclass-conversation
|
||||
rationale recorded in JOURNAL; constraint-bearing
|
||||
|
||||
Reference in New Issue
Block a user