Class: RubyModKit::Feature::InstanceVariableParameter::InstanceVariableParameterCorrector
- Inherits:
-
Corrector
- Object
- Corrector
- RubyModKit::Feature::InstanceVariableParameter::InstanceVariableParameterCorrector
- Defined in:
- lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb
Overview
the class to correct ‘def foo(@bar) …` -> `def foo(bar) …`
Instance Method Summary collapse
Methods inherited from Corrector
Instance Method Details
#correct(parse_error, generation) ⇒ void
This method returns an undefined value.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb', line 22 def correct(parse_error, generation) src_offset = parse_error.location.start_offset name = parse_error.location.slice[1..] raise RubyModKit::Error unless name parameter_position_node = generation.root_node.node_at(src_offset) raise RubyModKit::Error unless parameter_position_node generation[src_offset, parse_error.location.length] = name parameter_memo = generation.memo_pad.parameter_memo(parameter_position_node) parameter_memo.ivar_parameter = true return unless parameter_memo.untyped? def_parent_node = generation.root_node.def_parent_node_at(parse_error.location.start_offset) || return ivar_memo_type = generation.memo_pad.def_parent_memo(def_parent_node).ivar_memo(name.to_sym).type || return parameter_memo.type = ivar_memo_type end |
#correctable_error_types ⇒ Array<Symbol>
12 13 14 |
# File 'lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb', line 12 def correctable_error_types i[argument_formal_ivar] end |