class Steep::TypeInference::Context

def env

def env
  factory.env
end

def factory

def factory
  type_env.constant_env.factory
end

def initialize(method_context:, block_context:, break_context:, module_context:, self_type:, type_env:, call_context:, variable_context:)

def initialize(method_context:, block_context:, break_context:, module_context:, self_type:, type_env:, call_context:, variable_context:)
  @method_context = method_context
  @block_context = block_context
  @break_context = break_context
  @module_context = module_context
  @self_type = self_type
  @type_env = type_env
  @call_context = call_context
  @variable_context = variable_context
end

def inspect

def inspect
  s = "#<%s:%#018x " % [self.class, object_id]
  s << instance_variables.map(&:to_s).sort.map {|name| "#{name}=..." }.join(", ")
  s + ">"
end

def with(method_context: self.method_context,

def with(method_context: self.method_context,
         block_context: self.block_context,
         break_context: self.break_context,
         module_context: self.module_context,
         self_type: self.self_type,
         type_env: self.type_env,
         call_context: self.call_context,
         variable_context: self.variable_context)
  self.class.new(
    method_context: method_context,
    block_context: block_context,
    break_context: break_context,
    module_context: module_context,
    self_type: self_type,
    type_env: type_env,
    call_context: call_context,
    variable_context: variable_context
  )
end