Class: TypeProf::AttrMethodDef
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Subclasses: | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           MethodDef | |
| Instance Chain: | |
| Inherits: | TypeProf::MethodDef 
 | 
| Defined in: | lib/typeprof/method.rb | 
Class Method Summary
- .new(ivar, kind, pub_meth) ⇒ AttrMethodDef constructor
Instance Attribute Summary
Instance Method Summary
Constructor Details
    .new(ivar, kind, pub_meth)  ⇒ AttrMethodDef 
  
Instance Attribute Details
#ivar (readonly)
[ GitHub ]# File 'lib/typeprof/method.rb', line 187
attr_reader :ivar, :kind
#kind (readonly)
[ GitHub ]# File 'lib/typeprof/method.rb', line 187
attr_reader :ivar, :kind
Instance Method Details
#do_send(recv, mid, aargs, caller_ep, caller_env, scratch, &ctn)
[ GitHub ]# File 'lib/typeprof/method.rb', line 189
def do_send(recv, mid, aargs, caller_ep, caller_env, scratch, &ctn) case @kind when :reader if aargs.lead_tys.size == 0 scratch.add_ivar_read!(recv, @ivar, caller_ep) do |ty, _ep| ctn[ty, caller_ep, caller_env] end else ctn[Type.any, caller_ep, caller_env] end when :writer if aargs.lead_tys.size == 1 ty = aargs.lead_tys[0] scratch.set_instance_variable(recv, @ivar, ty, caller_ep, caller_env) ctn[ty, caller_ep, caller_env] else ctn[Type.any, caller_ep, caller_env] end end end