class TypeProf::AttrMethodDef
Attributes
def_ep[R]
ivar[R]
kind[R]
Public Class Methods
new(ivar, kind, pub_meth, def_ep)
click to toggle source
# File typeprof-0.15.2/lib/typeprof/method.rb, line 176 def initialize(ivar, kind, pub_meth, def_ep) @ivar = ivar @kind = kind # :reader | :writer @pub_meth = pub_meth @def_ep = def_ep end
Public Instance Methods
do_send(recv, mid, aargs, caller_ep, caller_env, scratch, &ctn)
click to toggle source
# File typeprof-0.15.2/lib/typeprof/method.rb, line 185 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