Class: TypeProf::SymbolBlock
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           Block | |
| Instance Chain: 
          self,
           Block,Utils::StructuralEquality | |
| Inherits: | TypeProf::Block 
 | 
| Defined in: | lib/typeprof/block.rb | 
Class Method Summary
- .new(sym) ⇒ SymbolBlock constructor
Instance Attribute Summary
Instance Method Summary
Constructor Details
    .new(sym)  ⇒ SymbolBlock 
  
# File 'lib/typeprof/block.rb', line 106
def initialize(sym) @sym = sym end
Instance Attribute Details
#iseq (readonly)
[ GitHub ]# File 'lib/typeprof/block.rb', line 110
attr_reader :iseq, :outer_ep
#outer_ep (readonly)
[ GitHub ]# File 'lib/typeprof/block.rb', line 110
attr_reader :iseq, :outer_ep
Instance Method Details
    #consistent?(other)  ⇒ Boolean 
  
# File 'lib/typeprof/block.rb', line 116
def consistent?(other) true # XXX end
#do_call(aargs, caller_ep, caller_env, scratch, replace_recv_ty:, replace_cref:, &ctn)
[ GitHub ]# File 'lib/typeprof/block.rb', line 124
def do_call(aargs, caller_ep, caller_env, scratch, replace_recv_ty:, replace_cref:, &ctn) if aargs.lead_tys.size >= 1 recv = aargs.lead_tys[0] recv = Type.any if recv == Type.bot aargs = ActualArguments.new(aargs.lead_tys[1..], aargs.rest_ty, aargs.kw_tys, aargs.blk_ty) elsif aargs.rest_ty recv = aargs.rest_ty.elems.squash_or_any # XXX: need to shift else recv = Type.any end scratch.add_block_signature!(self, aargs.to_block_signature) recv.each_child do |recv| scratch.do_send(recv, @sym, aargs, caller_ep, caller_env, &ctn) end end
#inspect
[ GitHub ]# File 'lib/typeprof/block.rb', line 112
def inspect "#<SymbolBlock: #{ @sym }>" end
#substitute(_subst, _depth)
[ GitHub ]# File 'lib/typeprof/block.rb', line 120
def substitute(_subst, _depth) self end