Next: src/object, Previous: src/escapes, Up: Project Layout [Contents][Index]
Namespace ‘type’. Type checking.
The interface of the Type module. It exports a single procedure,
types_check
.
The definitions of all the types. Built-in types (Int
,
String
and Void
) are defined in
src/type/builtin-types.*.
The Nil
type is holding information about the real record type that it’s
hiding.
The record_type
represents the actual type that the nil
was meant
to be used with.
The record_type
is set during the type-checker in the parent nodes of
the node holding a Nil
type.
The type::TypeChecker
visitor. Computes the types of an
AST and adds type labels to the corresponding nodes (works on
syntax without object).
The type::PrettyPrinter
visitor which pretty-prints type::Type
s
in a human-readable way. Used to output nice type errors.