struct Savi::Compiler::Infer::Span

Defined in:

savi/compiler/infer/span.cr

Constructors

Class Method Summary

Instance Method Summary

Constructor Detail

def self.new(inner : Savi::Compiler::Infer::Span::Inner) #

[View source]

Class Method Detail

def self.error(*args) #

[View source]
def self.for_partial_reify(mts : Array(MetaType)) #

[View source]
def self.reduce_combine_mts(spans : Array(Span), &block : MetaType, MetaType -> MetaType) : Span | Nil #

[View source]
def self.simple(mt : MetaType) #

[View source]
def self.simple_with_fallback(default_mt : MetaType, evaluate_mt : MetaType, options : Array(Tuple(Symbol, Span))) #

[View source]

Instance Method Detail

def all_terminal_meta_types : Array(MetaType) #

TODO remove this function?


[View source]
def any_error? #

[View source]
def any_mt?(&block : MetaType -> Bool) : Bool #

[View source]
def combine_mt(other : Span, &block : MetaType, MetaType -> MetaType) : Span #

[View source]
def combine_mt_to_span(other : Span, &block : MetaType, MetaType -> Span) : Span #

[View source]
def deciding_partial_reify_index(index : Int) : Span #

[View source]
def each_mt(&block : MetaType -> Nil) : Nil #

[View source]
def final_mt!(ctx : Context) : MetaType | Nil #

[View source]
def final_mt_simplify(ctx : Context) : Span #

[View source]
def inner : Inner #

[View source]
def maybe_fallback_based_on_mt_simplify(options : Array(Tuple(Symbol, Span))) #

[View source]
def narrowing_partial_reify_indices(target_bits : BitArray, mark_unsatisfiable = true) : Span #

[View source]
def pretty_print(format : PrettyPrint) #
Description copied from class Object

Pretty prints self into the given printer.

By default appends a text that is the result of invoking #inspect on self. Subclasses should override for custom pretty printing.


[View source]
def reduce_combine_mts(spans : Array(Span), &block : MetaType, MetaType -> MetaType) : Span #

[View source]
def terminal! #

[View source]
def total_error #

[View source]
def transform_mt(&block : MetaType -> MetaType) : Span #

[View source]
def transform_mt_to_span(&block : MetaType -> Span) : Span #

[View source]