class TypeProf::Core::LocalEnv
Attributes
Public Class Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 299 def initialize(path, cref, locals, return_boxes) @path = path @cref = cref @locals = locals @return_boxes = return_boxes @break_vtx = nil @next_boxes = [] @ivar_narrowings = {} @strict_const_scope = false end
Public Instance Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 332 def add_next_box(box) @next_boxes << box end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 328 def add_return_box(box) @return_boxes << box end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 350 def apply_ivar_narrowing(genv, node, name, vtx) if @ivar_narrowings[name] && !@ivar_narrowings[name].empty? # Apply all accumulated narrowings in order @ivar_narrowings[name].each do |narrowing| vtx = narrowing.narrow(genv, node, vtx) end return vtx end vtx end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 324 def exist_var?(name) !!@locals[name] end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 336 def get_break_vtx @break_vtx ||= Vertex.new(:break_vtx) end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 320 def get_var(name) @locals[name] || raise("#{ name }") end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 312 def new_var(name, node) @locals[name] = Vertex.new(node) end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 346 def pop_ivar_narrowing(name) (@ivar_narrowings[name] ||= []).pop end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 341 def push_ivar_narrowing(name, narrowing) raise unless narrowing.is_a?(Narrowing::Constraint) (@ivar_narrowings[name] ||= []) << narrowing end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 316 def set_var(name, vtx) @locals[name] = vtx end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env.rb, line 361 def use_strict_const_scope @strict_const_scope = true yield ensure @strict_const_scope = false end