class TypeProf::Core::Narrowing
Constants
- EmptyNarrowings
Attributes
Public Class Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env/narrowing.rb, line 3 def initialize(map) raise unless map.is_a?(Hash) @map = map end
Public Instance Methods
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env/narrowing.rb, line 10 def and(other) new_map = @map.dup other.map.each do |var, constraint| new_map[var] = new_map[var] ? new_map[var].and(constraint) : constraint end Narrowing.new(new_map) end
Source
# File bundled-src/typeprof-0.31.1/lib/typeprof/core/env/narrowing.rb, line 18 def or(other) new_map = {} @map.each do |var, constraint| new_map[var] = constraint.or(other.map[var]) if other.map[var] end Narrowing.new(new_map) end