class Myst::TypeCheck::Environment

Defined in:

typecheck/environment.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new #

[View source]

Instance Method Detail

def add_return_type(type : Type) #

[View source]
def break_stack : Array(Type | Nil) #

[View source]
def break_stack=(break_stack : Array(Type | Nil)) #

[View source]
def create_root_scope(root) #

[View source]
def current_return_type #

[View source]
def current_scope #

[View source]
def current_self #

[View source]
def init_primitives #

[View source]
def merge_scope!(unionize = true, nilify = false) #

[View source]
def pop_return_scope #

[View source]
def pop_scope #

[View source]
def pop_self #

[View source]
def push_return_scope #

[View source]
def push_scope(scope = nil) #

[View source]
def push_self(this : Type) #

[View source]
def return_stack : Array(Type | Nil) #

[View source]
def return_stack=(return_stack : Array(Type | Nil)) #

[View source]
def root_scope #

[View source]
def scope_override #

[View source]
def scope_stack : Array(Scope) #

[View source]
def scope_stack=(scope_stack : Array(Scope)) #

[View source]
def self_stack : Array(Type) #

[View source]
def self_stack=(self_stack : Array(Type)) #

[View source]
def set_return_type(type : Type) #

[View source]

Crystal's macro evaluation doesn't let this block of definitions live anywhere but in the original definition of this class. Not even in a macro that gets called here.


[View source]
def t_boolean : Myst::TypeCheck::Type #

[View source]
def t_boolean_t : Myst::TypeCheck::Type #

[View source]
def t_float : Myst::TypeCheck::Type #

[View source]
def t_float_t : Myst::TypeCheck::Type #

[View source]
def t_functor : Myst::TypeCheck::Type #

[View source]
def t_functor_t : Myst::TypeCheck::Type #

[View source]
def t_integer : Myst::TypeCheck::Type #

[View source]
def t_integer_t : Myst::TypeCheck::Type #

[View source]
def t_list : Myst::TypeCheck::Type #

[View source]
def t_list_t : Myst::TypeCheck::Type #

[View source]
def t_map : Myst::TypeCheck::Type #

[View source]
def t_map_t : Myst::TypeCheck::Type #

[View source]
def t_module : Myst::TypeCheck::Type #

[View source]
def t_module_t : Myst::TypeCheck::Type #

[View source]
def t_nil : Myst::TypeCheck::Type #

[View source]
def t_nil_t : Myst::TypeCheck::Type #

[View source]
def t_object : Myst::TypeCheck::Type #

[View source]
def t_object_t : Myst::TypeCheck::Type #

[View source]
def t_string : Myst::TypeCheck::Type #

[View source]
def t_string_t : Myst::TypeCheck::Type #

[View source]
def t_symbol : Myst::TypeCheck::Type #

[View source]
def t_symbol_t : Myst::TypeCheck::Type #

[View source]
def t_type : Myst::TypeCheck::Type #

[View source]
def t_type_t : Myst::TypeCheck::Type #

[View source]