The src/type Directory

Namespace type. Type checking.

File: libtype.* (src/type/)

The interface of the type module. It exports a single procedure, types_check.

Files: types.hh, type.*, array.*, attribute.*, builtin-types.*, class.*, field.*, function.*, method.*, named.*, record.* (src/type/)

The definitions of all the types. Built-in types (Int, String and Void) are defined in src/type/builtin-types.*.

File: nil.* (src/type/)

The Nil type is holding information about the real record type that it’s hiding. The record_type is set during the type-checker in the parent nodes of the node holding a Nil type.

File: type-checker.* (src/type/)

The type::TypeChecker visitor. Computes the types of an AST and adds type labels to the corresponding nodes (works on syntax without objects).

File: pretty-printer.* (src/type/)

The type::PrettyPrinter visitor which pretty-prints type::Type in a human-readable way. Used to output nice type errors.