123456789_123456789_123456789_123456789_123456789_

Class: TypeProf::CustomBlock

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Block
Instance Chain:
Inherits: TypeProf::Block
Defined in: lib/typeprof/block.rb

Class Method Summary

Instance Method Summary

Constructor Details

.new(caller_ep, mid, &blk) ⇒ CustomBlock

[ GitHub ]

  
# File 'lib/typeprof/block.rb', line 143

def initialize(caller_ep, mid, &blk)
  @caller_ep = caller_ep
  @mid = mid
  @blk = blk
end

Instance Method Details

#consistent?(other) ⇒ Boolean

[ GitHub ]

  
# File 'lib/typeprof/block.rb', line 153

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 161

def do_call(aargs, caller_ep, caller_env, scratch, replace_recv_ty:, replace_cref:, &ctn)
  aargs = scratch.globalize_type(aargs, caller_env, caller_ep)

  dummy_ctx = TypedContext.new(@caller_ep, @mid)

  scratch.add_block_signature!(self, aargs.to_block_signature)
  scratch.add_block_to_ctx!(self, dummy_ctx)

  @blk.call(aargs, caller_ep, caller_env, scratch, replace_recv_ty: replace_recv_ty, replace_cref: replace_cref) do |ret_ty, ep, env|
    scratch.add_return_value!(dummy_ctx, ret_ty)
    ctn[ret_ty, ep, env]
  end
end

#inspect

[ GitHub ]

  
# File 'lib/typeprof/block.rb', line 149

def inspect
  "#<CustomBlock>"
end

#substitute(_subst, _depth)

[ GitHub ]

  
# File 'lib/typeprof/block.rb', line 157

def substitute(_subst, _depth)
  self
end