class TypeProf::Core::AST::ModuleBaseNode::ClassNode

Attributes

superclass_cpath[R]

Public Class Methods

new(raw_node, lenv, use_result) click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/module.rb, line 86
def initialize(raw_node, lenv, use_result)
  super(raw_node, lenv, raw_node.constant_path, false, raw_node.body, use_result)
  raw_superclass = raw_node.superclass
  @superclass_cpath = raw_superclass ? AST.create_node(raw_superclass, lenv) : nil
end

Public Instance Methods

define0(genv) click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/module.rb, line 98
def define0(genv)
  if @static_cpath && @superclass_cpath
    const = @superclass_cpath.define(genv)
    const.followers << genv.resolve_cpath(@static_cpath) if const
  end
  super(genv)
end
install0(genv) click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/module.rb, line 111
def install0(genv)
  @superclass_cpath.install(genv) if @superclass_cpath
  super(genv)
end
subnodes() click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/module.rb, line 94
def subnodes
  super.merge!({ superclass_cpath: })
end
undefine0(genv) click to toggle source
# File typeprof-0.30.1/lib/typeprof/core/ast/module.rb, line 106
def undefine0(genv)
  super(genv)
  @superclass_cpath.undefine(genv) if @superclass_cpath
end