Class: Steep::TypeInference::TypeEnvBuilder::Command::ImportInstanceVariableDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/steep/type_inference/type_env_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(definition, factory) ⇒ ImportInstanceVariableDefinition

Returns a new instance of ImportInstanceVariableDefinition.



98
99
100
101
# File 'lib/steep/type_inference/type_env_builder.rb', line 98

def initialize(definition, factory)
  @definition = definition
  @factory = factory
end

Instance Attribute Details

#definitionObject (readonly)

Returns the value of attribute definition.



94
95
96
# File 'lib/steep/type_inference/type_env_builder.rb', line 94

def definition
  @definition
end

#factoryObject (readonly)

Returns the value of attribute factory.



96
97
98
# File 'lib/steep/type_inference/type_env_builder.rb', line 96

def factory
  @factory
end

Instance Method Details

#call(env) ⇒ Object



103
104
105
106
107
108
109
110
111
# File 'lib/steep/type_inference/type_env_builder.rb', line 103

def call(env)
  return env unless definition

  instance_variable_types = definition.instance_variables.transform_values do |ivar|
    factory.type(ivar.type)
  end

  env.update(instance_variable_types: instance_variable_types)
end