Class: TypeProf::TypedBlock
| 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(msig, ret_ty) ⇒ TypedBlock constructor
Instance Attribute Summary
Instance Method Summary
Constructor Details
    .new(msig, ret_ty)  ⇒ TypedBlock 
  
Instance Attribute Details
#msig (readonly)
[ GitHub ]# File 'lib/typeprof/block.rb', line 75
attr_reader :msig, :ret_ty
#ret_ty (readonly)
[ GitHub ]# File 'lib/typeprof/block.rb', line 75
attr_reader :msig, :ret_ty
Instance Method Details
    #consistent?(other)  ⇒ Boolean 
  
# File 'lib/typeprof/block.rb', line 77
def consistent?(other) if other.is_a?(ISeqBlock) raise "assert false" else self == other end end
#do_call(aargs, caller_ep, caller_env, scratch, replace_recv_ty:, replace_cref:, &ctn)
[ GitHub ]# File 'lib/typeprof/block.rb', line 91
def do_call(aargs, caller_ep, caller_env, scratch, replace_recv_ty:, replace_cref:, &ctn) aargs = scratch.globalize_type(aargs, caller_env, caller_ep) subst = aargs.consistent_with_method_signature?(@msig) unless subst scratch.warn(caller_ep, "The arguments is not compatible to RBS block") end # check? #subst = { Type::Var.new(:self) => caller_env.static_env.recv_ty } # XXX: Update type vars ret_ty = @ret_ty.remove_type_vars ctn[ret_ty, caller_ep, caller_env] end