class Savi::Compiler::PopulateTypes

Overview

The purpose of the PopulateTypes pass is to create missing types, such as types implied by namespace-nested types whose outer type does not yet exist in the package.

This pass uses copy-on-mutate patterns to "mutate" the Program topology. This pass does not mutate ASTs, but creates new types. This pass may raise a compilation error. This pass keeps temporary state (on the stack) at the per-type level. This pass produces no output state.

Defined in:

savi/compiler/populate_types.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new #

[View source]

Instance Method Detail

def maybe_note_missing_namespace_module_for(ctx, ident, package, missing_namespace_modules) #

[View source]
def run(ctx, package) #

[View source]