abstract class Savi::Compiler::Infer::NamedInfo
   
  - Savi::Compiler::Infer::NamedInfo
- Savi::Compiler::Infer::DynamicInfo
- Savi::Compiler::Infer::Info
- Reference
- Object
Direct Known Subclasses
- Savi::Compiler::Infer::ErrorOut
- Savi::Compiler::Infer::FuncBody
- Savi::Compiler::Infer::Local
- Savi::Compiler::Infer::Param
- Savi::Compiler::Infer::YieldIn
- Savi::Compiler::Infer::YieldOut
Defined in:
savi/compiler/infer/info.crConstructors
Instance Method Summary
- 
        #adds_alias
        
          May be implemented by the child class as an optional hook. 
- 
        #after_add_downstream(use_pos : Source::Pos, info : Info)
        
          May be implemented by the child class as an optional hook. 
- #as_conduit? : Conduit | Nil
- #assign(ctx : Context, upstream : Info, upstream_pos : Source::Pos)
- #explicit? : Bool
- #explicit_is_type_expr_cap? : Bool
- #first_viable_constraint_pos : Source::Pos
- 
        #infer_from_all_upstreams? : Bool
        
          By default, a NamedInfo will only treat the first assignment as relevant for inferring when there is no explicit, but some subclasses may override. 
- #resolve_span!(ctx : Context, infer : Visitor) : Span
- #set_explicit(explicit : Info)
- #tether_upward_transform_span(ctx : Context, infer : Visitor, span : Span) : Span
- #tethers(querent : Info) : Array(Tether)
- #upstream_infos
Instance methods inherited from class Savi::Compiler::Infer::DynamicInfo
  
  
    
      add_downstream(use_pos : Source::Pos, info : Info)
    add_downstream, 
    
  
    
      adds_alias
    adds_alias, 
    
  
    
      after_add_downstream(use_pos : Source::Pos, info : Info)
    after_add_downstream, 
    
  
    
      describe_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
    describe_downstream_constraints, 
    
  
    
      describe_kind : String
    describe_kind, 
    
  
    
      described_kind
    described_kind, 
    
  
    
      downstream_tethers(querent : Info) : Array(Tether)
    downstream_tethers, 
    
  
    
      downstream_use_pos
    downstream_use_pos, 
    
  
    
      downstreams_each
    downstreams_each, 
    
  
    
      downstreams_empty?
    downstreams_empty?, 
    
  
    
      list_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
    list_downstream_constraints, 
    
  
    
      tether_constraint_spans(ctx : Context, infer : Visitor)
    tether_constraint_spans, 
    
  
    
      tethers(querent : Info) : Array(Tether)
    tethers, 
    
  
    
      this_would_be_possible_if : Tuple(Source::Pos, String) | Nil
    this_would_be_possible_if, 
    
  
    
      this_would_be_possible_if=(this_would_be_possible_if : Tuple(Source::Pos, String) | Nil)
    this_would_be_possible_if=, 
    
  
    
      total_downstream_constraint(ctx : Context, type_check : TypeCheck::ForReifiedFunc)
    total_downstream_constraint
    
  
    
    
    
  
    
  Instance methods inherited from class Savi::Compiler::Infer::Info
  
  
    
      add_downstream(use_pos : Source::Pos, info : Info)
    add_downstream, 
    
  
    
      add_peer_hint(peer : Info)
    add_peer_hint, 
    
  
    
      as_conduit? : Conduit | Nil
    as_conduit?, 
    
  
    
      as_downstream_constraint_meta_type(ctx : Context, type_check : TypeCheck::ForReifiedFunc) : MetaType | Nil
    as_downstream_constraint_meta_type, 
    
  
    
      as_multiple_downstream_constraints(ctx : Context, type_check : TypeCheck::ForReifiedFunc) : Array(Tuple(Source::Pos, MetaType)) | Nil
    as_multiple_downstream_constraints, 
    
  
    
      as_upstream_conduits : Array(Conduit)
    as_upstream_conduits, 
    
  
    
      layer_index : Int32
    layer_index, 
    
  
    
      layer_index=(layer_index : Int32)
    layer_index=, 
    
  
    
      layer_index? : Int32 | Nil
    layer_index?, 
    
  
    
      override_describe_kind : String | Nil
    override_describe_kind, 
    
  
    
      override_describe_kind=(override_describe_kind : String | Nil)
    override_describe_kind=, 
    
  
    
      pos : Source::Pos
    pos, 
    
  
    
      pos=(pos : Source::Pos)
    pos=, 
    
  
    
      resolve_span!(ctx : Context, infer : Visitor)
    resolve_span!, 
    
  
    
      tether_resolve_span(ctx : Context, infer : Visitor)
    tether_resolve_span, 
    
  
    
      tether_terminal?
    tether_terminal?, 
    
  
    
      tether_upward_transform_span(ctx : Context, infer : Visitor, span : Span) : Span
    tether_upward_transform_span, 
    
  
    
      tethers(querent : Info) : Array(Tether)
    tethers, 
    
  
    
      to_s
    to_s
    
  
    
    
    
  
    
    
    
    
  
    
    
    
    
  
Constructor Detail
Instance Method Detail
        
        def adds_alias
        #
      
      
        
              Description copied from class Savi::Compiler::Infer::DynamicInfo
            
          
          May be implemented by the child class as an optional hook.
              Description copied from class Savi::Compiler::Infer::DynamicInfo
            
          
          May be implemented by the child class as an optional hook.
        
        def infer_from_all_upstreams? : Bool
        #
      
      
        By default, a NamedInfo will only treat the first assignment as relevant for inferring when there is no explicit, but some subclasses may override.