Files
Keno Fischer f8d353313e WIP: type system: Refactor Type{} structure
This refactors `Type` to be a proper kind (like Union) rather than a
magic DataType. In addition, the (also, but separately) magic Type{T}
(T free) supertype of `DataType` is replaced by a proper abstact type.
The previous design dates back to before DataType and UnionAll were
separate concepts and were essentially a hack to make `Type` behave
properly. Such hacks are no longer required. This PR is primarily
prepratory to address several long-standing soundness issues around
the subtyping of Type, but this PR itself does not address those
issues yet - it is intended to be purely the structural change that
will enable those changes in a follow on PR.

The new kind is called TypeEq, but `const Type = TypeEq{T} where T`
is retained, so users keep using `Type{}` as usual. The new supertype
of DataType is called `Kind` and `Type == Kind` (but not === of course).

`getproperty` overloads are provided for compatibility, but the
recommended accessor for new code is a (new) `Base.type_parameter`.

Written by GPT 5.5
2026-05-27 05:25:48 +00:00
..
2026-04-25 10:40:17 +02:00
2025-06-12 18:44:56 -03:00
2025-05-18 13:08:51 +02:00
2025-08-21 21:30:34 +08:00
2025-01-21 17:15:50 +01:00