Class: Yoda::Typing::Inferencer::ParameterBinder

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/typing/inferencer/parameter_binder.rb

Defined Under Namespace

Classes: BoundResult

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parameter) ⇒ ParameterBinder

Returns a new instance of ParameterBinder.

Parameters:

  • parameter (Base)


9
10
11
# File 'lib/yoda/typing/inferencer/parameter_binder.rb', line 9

def initialize(parameter)
  @parameter = parameter
end

Instance Attribute Details

#parameterBase (readonly)

Returns:

  • (Base)


6
7
8
# File 'lib/yoda/typing/inferencer/parameter_binder.rb', line 6

def parameter
  @parameter
end

Instance Method Details

#bind(type:, generator:) ⇒ TypeBinding

Parameters:

Returns:



17
18
19
20
# File 'lib/yoda/typing/inferencer/parameter_binder.rb', line 17

def bind(type:, generator:)
  method_type = generator.fresh_params_of_method_type(type)
  BoundResult.new(type: method_type, parameter: parameter, generator: generator).type_binding
end