class TypeProf::StaticEnv

Attributes

blk_ty[R]
mod_func[R]
pub_meth[R]
recv_ty[R]

Public Class Methods

new(recv_ty, blk_ty, mod_func, pub_meth) click to toggle source
# File typeprof-0.21.9/lib/typeprof/analyzer.rb, line 133
def initialize(recv_ty, blk_ty, mod_func, pub_meth)
  @recv_ty = recv_ty
  @blk_ty = blk_ty
  @mod_func = mod_func
  @pub_meth = pub_meth

  return if recv_ty == :top #OK
  recv_ty.each_child_global do |ty|
    raise ty.inspect if !ty.is_a?(Type::Instance) && !ty.is_a?(Type::Class) && !ty.is_a?(Type::Symbol) && ty != Type.any
  end
end

Public Instance Methods

merge(other) click to toggle source
# File typeprof-0.21.9/lib/typeprof/analyzer.rb, line 147
def merge(other)
  recv_ty = @recv_ty.union(other.recv_ty)
  blk_ty = @blk_ty.union(other.blk_ty)
  mod_func = @mod_func & other.mod_func # ??
  pub_meth = @pub_meth & other.pub_meth # ??
  StaticEnv.new(recv_ty, blk_ty, mod_func, pub_meth)
end