Class: Henitai::Operators::ReturnValue
- Inherits:
-
Henitai::Operator
- Object
- Henitai::Operator
- Henitai::Operators::ReturnValue
- Defined in:
- lib/henitai/operators/return_value.rb
Overview
Replaces return values and implicit final expressions with neutral values.
Constant Summary collapse
- NODE_TYPES =
Parser uses :true / :false node types, so the AST symbols are intentional. rubocop:disable Lint/BooleanSymbol
%i[return send int float str dstr true false if case while until array hash].freeze
- REPLACEMENT_FACTORIES =
[ -> { Parser::AST::Node.new(:nil, []) }, -> { Parser::AST::Node.new(:int, [0]) }, -> { Parser::AST::Node.new(:false, []) } ].freeze
Constants inherited from Henitai::Operator
Henitai::Operator::FULL_SET, Henitai::Operator::LIGHT_SET
Class Method Summary collapse
-
.node_types ⇒ Object
rubocop:enable Lint/BooleanSymbol.
Instance Method Summary collapse
Methods inherited from Henitai::Operator
Class Method Details
.node_types ⇒ Object
rubocop:enable Lint/BooleanSymbol
19 20 21 |
# File 'lib/henitai/operators/return_value.rb', line 19 def self.node_types NODE_TYPES end |
Instance Method Details
#mutate(node, subject:) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/henitai/operators/return_value.rb', line 23 def mutate(node, subject:) case node.type when :return mutate_explicit_return(node, subject:) else mutate_implicit_return(node, subject:) end end |