123456789_123456789_123456789_123456789_123456789_

Class: Prism::MutationCompiler

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: Prism::Compiler
Defined in: lib/prism/mutation_compiler.rb

Overview

This visitor walks through the tree and copies each node as it is being visited. This is useful for consumers that want to mutate the tree, as you can change subtrees in place without effecting the rest of the tree.

Instance Method Summary

Compiler - Inherited

#visit

Visit an individual node.

#visit_alias_global_variable_node

Compile a AliasGlobalVariableNode node.

#visit_alias_method_node

Compile a AliasMethodNode node.

#visit_all

Visit a list of nodes.

#visit_alternation_pattern_node

Compile a AlternationPatternNode node.

#visit_and_node

Compile a AndNode node.

#visit_arguments_node

Compile a ArgumentsNode node.

#visit_array_node

Compile a ArrayNode node.

#visit_array_pattern_node

Compile a ArrayPatternNode node.

#visit_assoc_node

Compile a AssocNode node.

#visit_assoc_splat_node

Compile a AssocSplatNode node.

#visit_back_reference_read_node

Compile a BackReferenceReadNode node.

#visit_begin_node

Compile a BeginNode node.

#visit_block_argument_node

Compile a BlockArgumentNode node.

#visit_block_local_variable_node

Compile a BlockLocalVariableNode node.

#visit_block_node

Compile a BlockNode node.

#visit_block_parameter_node

Compile a BlockParameterNode node.

#visit_block_parameters_node

Compile a BlockParametersNode node.

#visit_break_node

Compile a BreakNode node.

#visit_call_and_write_node

Compile a CallAndWriteNode node.

#visit_call_node

Compile a CallNode node.

#visit_call_operator_write_node

Compile a CallOperatorWriteNode node.

#visit_call_or_write_node

Compile a CallOrWriteNode node.

#visit_call_target_node

Compile a CallTargetNode node.

#visit_capture_pattern_node

Compile a CapturePatternNode node.

#visit_case_match_node

Compile a CaseMatchNode node.

#visit_case_node

Compile a CaseNode node.

#visit_child_nodes

Visit the child nodes of the given node.

#visit_class_node

Compile a ClassNode node.

#visit_class_variable_and_write_node
#visit_class_variable_operator_write_node
#visit_class_variable_or_write_node

Compile a ClassVariableOrWriteNode node.

#visit_class_variable_read_node

Compile a ClassVariableReadNode node.

#visit_class_variable_target_node

Compile a ClassVariableTargetNode node.

#visit_class_variable_write_node

Compile a ClassVariableWriteNode node.

#visit_constant_and_write_node

Compile a ConstantAndWriteNode node.

#visit_constant_operator_write_node
#visit_constant_or_write_node

Compile a ConstantOrWriteNode node.

#visit_constant_path_and_write_node

Compile a ConstantPathAndWriteNode node.

#visit_constant_path_node

Compile a ConstantPathNode node.

#visit_constant_path_operator_write_node
#visit_constant_path_or_write_node

Compile a ConstantPathOrWriteNode node.

#visit_constant_path_target_node

Compile a ConstantPathTargetNode node.

#visit_constant_path_write_node

Compile a ConstantPathWriteNode node.

#visit_constant_read_node

Compile a ConstantReadNode node.

#visit_constant_target_node

Compile a ConstantTargetNode node.

#visit_constant_write_node

Compile a ConstantWriteNode node.

#visit_def_node

Compile a DefNode node.

#visit_defined_node

Compile a DefinedNode node.

#visit_else_node

Compile a ElseNode node.

#visit_embedded_statements_node

Compile a EmbeddedStatementsNode node.

#visit_embedded_variable_node

Compile a EmbeddedVariableNode node.

#visit_ensure_node

Compile a EnsureNode node.

#visit_false_node

Compile a FalseNode node.

#visit_find_pattern_node

Compile a FindPatternNode node.

#visit_flip_flop_node

Compile a FlipFlopNode node.

#visit_float_node

Compile a FloatNode node.

#visit_for_node

Compile a ForNode node.

#visit_forwarding_arguments_node

Compile a ForwardingArgumentsNode node.

#visit_forwarding_parameter_node

Compile a ForwardingParameterNode node.

#visit_forwarding_super_node

Compile a ForwardingSuperNode node.

#visit_global_variable_and_write_node
#visit_global_variable_operator_write_node
#visit_global_variable_or_write_node
#visit_global_variable_read_node

Compile a GlobalVariableReadNode node.

#visit_global_variable_target_node

Compile a GlobalVariableTargetNode node.

#visit_global_variable_write_node

Compile a GlobalVariableWriteNode node.

#visit_hash_node

Compile a HashNode node.

#visit_hash_pattern_node

Compile a HashPatternNode node.

#visit_if_node

Compile a IfNode node.

#visit_imaginary_node

Compile a ImaginaryNode node.

#visit_implicit_node

Compile a ImplicitNode node.

#visit_implicit_rest_node

Compile a ImplicitRestNode node.

#visit_in_node

Compile a InNode node.

#visit_index_and_write_node

Compile a IndexAndWriteNode node.

#visit_index_operator_write_node

Compile a IndexOperatorWriteNode node.

#visit_index_or_write_node

Compile a IndexOrWriteNode node.

#visit_index_target_node

Compile a IndexTargetNode node.

#visit_instance_variable_and_write_node
#visit_instance_variable_operator_write_node
#visit_instance_variable_or_write_node
#visit_instance_variable_read_node

Compile a InstanceVariableReadNode node.

#visit_instance_variable_target_node
#visit_instance_variable_write_node
#visit_integer_node

Compile a IntegerNode node.

#visit_interpolated_match_last_line_node
#visit_interpolated_regular_expression_node
#visit_interpolated_string_node

Compile a InterpolatedStringNode node.

#visit_interpolated_symbol_node

Compile a InterpolatedSymbolNode node.

#visit_interpolated_x_string_node

Compile a InterpolatedXStringNode node.

#visit_it_local_variable_read_node

Compile a ItLocalVariableReadNode node.

#visit_it_parameters_node

Compile a ItParametersNode node.

#visit_keyword_hash_node

Compile a KeywordHashNode node.

#visit_keyword_rest_parameter_node

Compile a KeywordRestParameterNode node.

#visit_lambda_node

Compile a LambdaNode node.

#visit_local_variable_and_write_node
#visit_local_variable_operator_write_node
#visit_local_variable_or_write_node

Compile a LocalVariableOrWriteNode node.

#visit_local_variable_read_node

Compile a LocalVariableReadNode node.

#visit_local_variable_target_node

Compile a LocalVariableTargetNode node.

#visit_local_variable_write_node

Compile a LocalVariableWriteNode node.

#visit_match_last_line_node

Compile a MatchLastLineNode node.

#visit_match_predicate_node

Compile a MatchPredicateNode node.

#visit_match_required_node

Compile a MatchRequiredNode node.

#visit_match_write_node

Compile a MatchWriteNode node.

#visit_missing_node

Compile a MissingNode node.

#visit_module_node

Compile a ModuleNode node.

#visit_multi_target_node

Compile a MultiTargetNode node.

#visit_multi_write_node

Compile a MultiWriteNode node.

#visit_next_node

Compile a NextNode node.

#visit_nil_node

Compile a NilNode node.

#visit_no_keywords_parameter_node

Compile a NoKeywordsParameterNode node.

#visit_numbered_parameters_node

Compile a NumberedParametersNode node.

#visit_numbered_reference_read_node
#visit_optional_keyword_parameter_node
#visit_optional_parameter_node

Compile a OptionalParameterNode node.

#visit_or_node

Compile a OrNode node.

#visit_parameters_node

Compile a ParametersNode node.

#visit_parentheses_node

Compile a ParenthesesNode node.

#visit_pinned_expression_node

Compile a PinnedExpressionNode node.

#visit_pinned_variable_node

Compile a PinnedVariableNode node.

#visit_post_execution_node

Compile a PostExecutionNode node.

#visit_pre_execution_node

Compile a PreExecutionNode node.

#visit_program_node

Compile a ProgramNode node.

#visit_range_node

Compile a RangeNode node.

#visit_rational_node

Compile a RationalNode node.

#visit_redo_node

Compile a RedoNode node.

#visit_regular_expression_node

Compile a RegularExpressionNode node.

#visit_required_keyword_parameter_node
#visit_required_parameter_node

Compile a RequiredParameterNode node.

#visit_rescue_modifier_node

Compile a RescueModifierNode node.

#visit_rescue_node

Compile a RescueNode node.

#visit_rest_parameter_node

Compile a RestParameterNode node.

#visit_retry_node

Compile a RetryNode node.

#visit_return_node

Compile a ReturnNode node.

#visit_self_node

Compile a SelfNode node.

#visit_shareable_constant_node

Compile a ShareableConstantNode node.

#visit_singleton_class_node

Compile a SingletonClassNode node.

#visit_source_encoding_node

Compile a SourceEncodingNode node.

#visit_source_file_node

Compile a SourceFileNode node.

#visit_source_line_node

Compile a SourceLineNode node.

#visit_splat_node

Compile a SplatNode node.

#visit_statements_node

Compile a StatementsNode node.

#visit_string_node

Compile a StringNode node.

#visit_super_node

Compile a SuperNode node.

#visit_symbol_node

Compile a SymbolNode node.

#visit_true_node

Compile a TrueNode node.

#visit_undef_node

Compile a UndefNode node.

#visit_unless_node

Compile a UnlessNode node.

#visit_until_node

Compile a UntilNode node.

#visit_when_node

Compile a WhenNode node.

#visit_while_node

Compile a WhileNode node.

#visit_x_string_node

Compile a XStringNode node.

#visit_yield_node

Compile a YieldNode node.

Visitor - Inherited

#visit_alias_global_variable_node
#visit_alias_method_node

Visit a AliasMethodNode node.

#visit_alternation_pattern_node
#visit_and_node

Visit a AndNode node.

#visit_arguments_node

Visit a ArgumentsNode node.

#visit_array_node

Visit a ArrayNode node.

#visit_array_pattern_node

Visit a ArrayPatternNode node.

#visit_assoc_node

Visit a AssocNode node.

#visit_assoc_splat_node

Visit a AssocSplatNode node.

#visit_back_reference_read_node

Visit a BackReferenceReadNode node.

#visit_begin_node

Visit a BeginNode node.

#visit_block_argument_node

Visit a BlockArgumentNode node.

#visit_block_local_variable_node
#visit_block_node

Visit a BlockNode node.

#visit_block_parameter_node

Visit a BlockParameterNode node.

#visit_block_parameters_node

Visit a BlockParametersNode node.

#visit_break_node

Visit a BreakNode node.

#visit_call_and_write_node

Visit a CallAndWriteNode node.

#visit_call_node

Visit a CallNode node.

#visit_call_operator_write_node

Visit a CallOperatorWriteNode node.

#visit_call_or_write_node

Visit a CallOrWriteNode node.

#visit_call_target_node

Visit a CallTargetNode node.

#visit_capture_pattern_node

Visit a CapturePatternNode node.

#visit_case_match_node

Visit a CaseMatchNode node.

#visit_case_node

Visit a CaseNode node.

#visit_class_node

Visit a ClassNode node.

#visit_class_variable_and_write_node
#visit_class_variable_operator_write_node
#visit_class_variable_or_write_node
#visit_class_variable_read_node

Visit a ClassVariableReadNode node.

#visit_class_variable_target_node
#visit_class_variable_write_node
#visit_constant_and_write_node

Visit a ConstantAndWriteNode node.

#visit_constant_operator_write_node
#visit_constant_or_write_node

Visit a ConstantOrWriteNode node.

#visit_constant_path_and_write_node
#visit_constant_path_node

Visit a ConstantPathNode node.

#visit_constant_path_operator_write_node
#visit_constant_path_or_write_node
#visit_constant_path_target_node
#visit_constant_path_write_node

Visit a ConstantPathWriteNode node.

#visit_constant_read_node

Visit a ConstantReadNode node.

#visit_constant_target_node

Visit a ConstantTargetNode node.

#visit_constant_write_node

Visit a ConstantWriteNode node.

#visit_def_node

Visit a DefNode node.

#visit_defined_node

Visit a DefinedNode node.

#visit_else_node

Visit a ElseNode node.

#visit_embedded_statements_node
#visit_embedded_variable_node

Visit a EmbeddedVariableNode node.

#visit_ensure_node

Visit a EnsureNode node.

#visit_false_node

Visit a FalseNode node.

#visit_find_pattern_node

Visit a FindPatternNode node.

#visit_flip_flop_node

Visit a FlipFlopNode node.

#visit_float_node

Visit a FloatNode node.

#visit_for_node

Visit a ForNode node.

#visit_forwarding_arguments_node
#visit_forwarding_parameter_node
#visit_forwarding_super_node

Visit a ForwardingSuperNode node.

#visit_global_variable_and_write_node
#visit_global_variable_operator_write_node
#visit_global_variable_or_write_node
#visit_global_variable_read_node
#visit_global_variable_target_node
#visit_global_variable_write_node
#visit_hash_node

Visit a HashNode node.

#visit_hash_pattern_node

Visit a HashPatternNode node.

#visit_if_node

Visit a IfNode node.

#visit_imaginary_node

Visit a ImaginaryNode node.

#visit_implicit_node

Visit a ImplicitNode node.

#visit_implicit_rest_node

Visit a ImplicitRestNode node.

#visit_in_node

Visit a InNode node.

#visit_index_and_write_node

Visit a IndexAndWriteNode node.

#visit_index_operator_write_node
#visit_index_or_write_node

Visit a IndexOrWriteNode node.

#visit_index_target_node

Visit a IndexTargetNode node.

#visit_instance_variable_and_write_node
#visit_instance_variable_operator_write_node
#visit_instance_variable_or_write_node
#visit_instance_variable_read_node
#visit_instance_variable_target_node
#visit_instance_variable_write_node
#visit_integer_node

Visit a IntegerNode node.

#visit_interpolated_match_last_line_node
#visit_interpolated_regular_expression_node
#visit_interpolated_string_node
#visit_interpolated_symbol_node
#visit_interpolated_x_string_node
#visit_it_local_variable_read_node
#visit_it_parameters_node

Visit a ItParametersNode node.

#visit_keyword_hash_node

Visit a KeywordHashNode node.

#visit_keyword_rest_parameter_node
#visit_lambda_node

Visit a LambdaNode node.

#visit_local_variable_and_write_node
#visit_local_variable_operator_write_node
#visit_local_variable_or_write_node
#visit_local_variable_read_node

Visit a LocalVariableReadNode node.

#visit_local_variable_target_node
#visit_local_variable_write_node
#visit_match_last_line_node

Visit a MatchLastLineNode node.

#visit_match_predicate_node

Visit a MatchPredicateNode node.

#visit_match_required_node

Visit a MatchRequiredNode node.

#visit_match_write_node

Visit a MatchWriteNode node.

#visit_missing_node

Visit a MissingNode node.

#visit_module_node

Visit a ModuleNode node.

#visit_multi_target_node

Visit a MultiTargetNode node.

#visit_multi_write_node

Visit a MultiWriteNode node.

#visit_next_node

Visit a NextNode node.

#visit_nil_node

Visit a NilNode node.

#visit_no_keywords_parameter_node
#visit_numbered_parameters_node
#visit_numbered_reference_read_node
#visit_optional_keyword_parameter_node
#visit_optional_parameter_node

Visit a OptionalParameterNode node.

#visit_or_node

Visit a OrNode node.

#visit_parameters_node

Visit a ParametersNode node.

#visit_parentheses_node

Visit a ParenthesesNode node.

#visit_pinned_expression_node

Visit a PinnedExpressionNode node.

#visit_pinned_variable_node

Visit a PinnedVariableNode node.

#visit_post_execution_node

Visit a PostExecutionNode node.

#visit_pre_execution_node

Visit a PreExecutionNode node.

#visit_program_node

Visit a ProgramNode node.

#visit_range_node

Visit a RangeNode node.

#visit_rational_node

Visit a RationalNode node.

#visit_redo_node

Visit a RedoNode node.

#visit_regular_expression_node

Visit a RegularExpressionNode node.

#visit_required_keyword_parameter_node
#visit_required_parameter_node

Visit a RequiredParameterNode node.

#visit_rescue_modifier_node

Visit a RescueModifierNode node.

#visit_rescue_node

Visit a RescueNode node.

#visit_rest_parameter_node

Visit a RestParameterNode node.

#visit_retry_node

Visit a RetryNode node.

#visit_return_node

Visit a ReturnNode node.

#visit_self_node

Visit a SelfNode node.

#visit_shareable_constant_node

Visit a ShareableConstantNode node.

#visit_singleton_class_node

Visit a SingletonClassNode node.

#visit_source_encoding_node

Visit a SourceEncodingNode node.

#visit_source_file_node

Visit a SourceFileNode node.

#visit_source_line_node

Visit a SourceLineNode node.

#visit_splat_node

Visit a SplatNode node.

#visit_statements_node

Visit a StatementsNode node.

#visit_string_node

Visit a StringNode node.

#visit_super_node

Visit a SuperNode node.

#visit_symbol_node

Visit a SymbolNode node.

#visit_true_node

Visit a TrueNode node.

#visit_undef_node

Visit a UndefNode node.

#visit_unless_node

Visit a UnlessNode node.

#visit_until_node

Visit a UntilNode node.

#visit_when_node

Visit a WhenNode node.

#visit_while_node

Visit a WhileNode node.

#visit_x_string_node

Visit a XStringNode node.

#visit_yield_node

Visit a YieldNode node.

BasicVisitor - Inherited

#visit

Calls accept on the given node if it is not nil, which in turn should call back into this visitor by calling the appropriate visit_* method.

#visit_all

Visits each node in nodes by calling accept on each one.

#visit_child_nodes

Visits the child nodes of node by calling accept on each one.

Instance Method Details

#visit_alias_global_variable_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 18

def visit_alias_global_variable_node(node)
  node.copy(new_name: visit(node.new_name), old_name: visit(node.old_name))
end

#visit_alias_method_node(node)

Copy a AliasMethodNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 23

def visit_alias_method_node(node)
  node.copy(new_name: visit(node.new_name), old_name: visit(node.old_name))
end

#visit_alternation_pattern_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 28

def visit_alternation_pattern_node(node)
  node.copy(left: visit(node.left), right: visit(node.right))
end

#visit_and_node(node)

Copy a AndNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 33

def visit_and_node(node)
  node.copy(left: visit(node.left), right: visit(node.right))
end

#visit_arguments_node(node)

Copy a ArgumentsNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 38

def visit_arguments_node(node)
  node.copy(arguments: visit_all(node.arguments))
end

#visit_array_node(node)

Copy a ArrayNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 43

def visit_array_node(node)
  node.copy(elements: visit_all(node.elements))
end

#visit_array_pattern_node(node)

Copy a ArrayPatternNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 48

def visit_array_pattern_node(node)
  node.copy(constant: visit(node.constant), requireds: visit_all(node.requireds), rest: visit(node.rest), posts: visit_all(node.posts))
end

#visit_assoc_node(node)

Copy a AssocNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 53

def visit_assoc_node(node)
  node.copy(key: visit(node.key), value: visit(node.value))
end

#visit_assoc_splat_node(node)

Copy a AssocSplatNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 58

def visit_assoc_splat_node(node)
  node.copy(value: visit(node.value))
end

#visit_back_reference_read_node(node)

Copy a BackReferenceReadNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 63

def visit_back_reference_read_node(node)
  node.copy
end

#visit_begin_node(node)

Copy a BeginNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 68

def visit_begin_node(node)
  node.copy(statements: visit(node.statements), rescue_clause: visit(node.rescue_clause), else_clause: visit(node.else_clause), ensure_clause: visit(node.ensure_clause))
end

#visit_block_argument_node(node)

Copy a BlockArgumentNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 73

def visit_block_argument_node(node)
  node.copy(expression: visit(node.expression))
end

#visit_block_local_variable_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 78

def visit_block_local_variable_node(node)
  node.copy
end

#visit_block_node(node)

Copy a BlockNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 83

def visit_block_node(node)
  node.copy(parameters: visit(node.parameters), body: visit(node.body))
end

#visit_block_parameter_node(node)

Copy a BlockParameterNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 88

def visit_block_parameter_node(node)
  node.copy
end

#visit_block_parameters_node(node)

Copy a BlockParametersNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 93

def visit_block_parameters_node(node)
  node.copy(parameters: visit(node.parameters), locals: visit_all(node.locals))
end

#visit_break_node(node)

Copy a BreakNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 98

def visit_break_node(node)
  node.copy(arguments: visit(node.arguments))
end

#visit_call_and_write_node(node)

Copy a CallAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 103

def visit_call_and_write_node(node)
  node.copy(receiver: visit(node.receiver), value: visit(node.value))
end

#visit_call_node(node)

Copy a CallNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 108

def visit_call_node(node)
  node.copy(receiver: visit(node.receiver), arguments: visit(node.arguments), block: visit(node.block))
end

#visit_call_operator_write_node(node)

Copy a CallOperatorWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 113

def visit_call_operator_write_node(node)
  node.copy(receiver: visit(node.receiver), value: visit(node.value))
end

#visit_call_or_write_node(node)

Copy a CallOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 118

def visit_call_or_write_node(node)
  node.copy(receiver: visit(node.receiver), value: visit(node.value))
end

#visit_call_target_node(node)

Copy a CallTargetNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 123

def visit_call_target_node(node)
  node.copy(receiver: visit(node.receiver))
end

#visit_capture_pattern_node(node)

Copy a CapturePatternNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 128

def visit_capture_pattern_node(node)
  node.copy(value: visit(node.value), target: visit(node.target))
end

#visit_case_match_node(node)

Copy a CaseMatchNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 133

def visit_case_match_node(node)
  node.copy(predicate: visit(node.predicate), conditions: visit_all(node.conditions), else_clause: visit(node.else_clause))
end

#visit_case_node(node)

Copy a CaseNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 138

def visit_case_node(node)
  node.copy(predicate: visit(node.predicate), conditions: visit_all(node.conditions), else_clause: visit(node.else_clause))
end

#visit_class_node(node)

Copy a ClassNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 143

def visit_class_node(node)
  node.copy(constant_path: visit(node.constant_path), superclass: visit(node.superclass), body: visit(node.body))
end

#visit_class_variable_and_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 148

def visit_class_variable_and_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_class_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 153

def visit_class_variable_operator_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_class_variable_or_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 158

def visit_class_variable_or_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_class_variable_read_node(node)

Copy a ClassVariableReadNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 163

def visit_class_variable_read_node(node)
  node.copy
end

#visit_class_variable_target_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 168

def visit_class_variable_target_node(node)
  node.copy
end

#visit_class_variable_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 173

def visit_class_variable_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_constant_and_write_node(node)

Copy a ConstantAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 178

def visit_constant_and_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_constant_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 183

def visit_constant_operator_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_constant_or_write_node(node)

Copy a ConstantOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 188

def visit_constant_or_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_constant_path_and_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 193

def visit_constant_path_and_write_node(node)
  node.copy(target: visit(node.target), value: visit(node.value))
end

#visit_constant_path_node(node)

Copy a ConstantPathNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 198

def visit_constant_path_node(node)
  node.copy(parent: visit(node.parent))
end

#visit_constant_path_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 203

def visit_constant_path_operator_write_node(node)
  node.copy(target: visit(node.target), value: visit(node.value))
end

#visit_constant_path_or_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 208

def visit_constant_path_or_write_node(node)
  node.copy(target: visit(node.target), value: visit(node.value))
end

#visit_constant_path_target_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 213

def visit_constant_path_target_node(node)
  node.copy(parent: visit(node.parent))
end

#visit_constant_path_write_node(node)

Copy a ConstantPathWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 218

def visit_constant_path_write_node(node)
  node.copy(target: visit(node.target), value: visit(node.value))
end

#visit_constant_read_node(node)

Copy a ConstantReadNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 223

def visit_constant_read_node(node)
  node.copy
end

#visit_constant_target_node(node)

Copy a ConstantTargetNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 228

def visit_constant_target_node(node)
  node.copy
end

#visit_constant_write_node(node)

Copy a ConstantWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 233

def visit_constant_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_def_node(node)

Copy a DefNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 238

def visit_def_node(node)
  node.copy(receiver: visit(node.receiver), parameters: visit(node.parameters), body: visit(node.body))
end

#visit_defined_node(node)

Copy a DefinedNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 243

def visit_defined_node(node)
  node.copy(value: visit(node.value))
end

#visit_else_node(node)

Copy a ElseNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 248

def visit_else_node(node)
  node.copy(statements: visit(node.statements))
end

#visit_embedded_statements_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 253

def visit_embedded_statements_node(node)
  node.copy(statements: visit(node.statements))
end

#visit_embedded_variable_node(node)

Copy a EmbeddedVariableNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 258

def visit_embedded_variable_node(node)
  node.copy(variable: visit(node.variable))
end

#visit_ensure_node(node)

Copy a EnsureNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 263

def visit_ensure_node(node)
  node.copy(statements: visit(node.statements))
end

#visit_false_node(node)

Copy a FalseNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 268

def visit_false_node(node)
  node.copy
end

#visit_find_pattern_node(node)

Copy a FindPatternNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 273

def visit_find_pattern_node(node)
  node.copy(constant: visit(node.constant), left: visit(node.left), requireds: visit_all(node.requireds), right: visit(node.right))
end

#visit_flip_flop_node(node)

Copy a FlipFlopNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 278

def visit_flip_flop_node(node)
  node.copy(left: visit(node.left), right: visit(node.right))
end

#visit_float_node(node)

Copy a FloatNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 283

def visit_float_node(node)
  node.copy
end

#visit_for_node(node)

Copy a ForNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 288

def visit_for_node(node)
  node.copy(index: visit(node.index), collection: visit(node.collection), statements: visit(node.statements))
end

#visit_forwarding_arguments_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 293

def visit_forwarding_arguments_node(node)
  node.copy
end

#visit_forwarding_parameter_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 298

def visit_forwarding_parameter_node(node)
  node.copy
end

#visit_forwarding_super_node(node)

Copy a ForwardingSuperNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 303

def visit_forwarding_super_node(node)
  node.copy(block: visit(node.block))
end

#visit_global_variable_and_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 308

def visit_global_variable_and_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_global_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 313

def visit_global_variable_operator_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_global_variable_or_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 318

def visit_global_variable_or_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_global_variable_read_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 323

def visit_global_variable_read_node(node)
  node.copy
end

#visit_global_variable_target_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 328

def visit_global_variable_target_node(node)
  node.copy
end

#visit_global_variable_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 333

def visit_global_variable_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_hash_node(node)

Copy a HashNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 338

def visit_hash_node(node)
  node.copy(elements: visit_all(node.elements))
end

#visit_hash_pattern_node(node)

Copy a HashPatternNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 343

def visit_hash_pattern_node(node)
  node.copy(constant: visit(node.constant), elements: visit_all(node.elements), rest: visit(node.rest))
end

#visit_if_node(node)

Copy a IfNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 348

def visit_if_node(node)
  node.copy(predicate: visit(node.predicate), statements: visit(node.statements), subsequent: visit(node.subsequent))
end

#visit_imaginary_node(node)

Copy a ImaginaryNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 353

def visit_imaginary_node(node)
  node.copy(numeric: visit(node.numeric))
end

#visit_implicit_node(node)

Copy a ImplicitNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 358

def visit_implicit_node(node)
  node.copy(value: visit(node.value))
end

#visit_implicit_rest_node(node)

Copy a ImplicitRestNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 363

def visit_implicit_rest_node(node)
  node.copy
end

#visit_in_node(node)

Copy a InNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 368

def visit_in_node(node)
  node.copy(pattern: visit(node.pattern), statements: visit(node.statements))
end

#visit_index_and_write_node(node)

Copy a IndexAndWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 373

def visit_index_and_write_node(node)
  node.copy(receiver: visit(node.receiver), arguments: visit(node.arguments), block: visit(node.block), value: visit(node.value))
end

#visit_index_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 378

def visit_index_operator_write_node(node)
  node.copy(receiver: visit(node.receiver), arguments: visit(node.arguments), block: visit(node.block), value: visit(node.value))
end

#visit_index_or_write_node(node)

Copy a IndexOrWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 383

def visit_index_or_write_node(node)
  node.copy(receiver: visit(node.receiver), arguments: visit(node.arguments), block: visit(node.block), value: visit(node.value))
end

#visit_index_target_node(node)

Copy a IndexTargetNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 388

def visit_index_target_node(node)
  node.copy(receiver: visit(node.receiver), arguments: visit(node.arguments), block: visit(node.block))
end

#visit_instance_variable_and_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 393

def visit_instance_variable_and_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_instance_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 398

def visit_instance_variable_operator_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_instance_variable_or_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 403

def visit_instance_variable_or_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_instance_variable_read_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 408

def visit_instance_variable_read_node(node)
  node.copy
end

#visit_instance_variable_target_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 413

def visit_instance_variable_target_node(node)
  node.copy
end

#visit_instance_variable_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 418

def visit_instance_variable_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_integer_node(node)

Copy a IntegerNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 423

def visit_integer_node(node)
  node.copy
end

#visit_interpolated_match_last_line_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 428

def visit_interpolated_match_last_line_node(node)
  node.copy(parts: visit_all(node.parts))
end

#visit_interpolated_regular_expression_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 433

def visit_interpolated_regular_expression_node(node)
  node.copy(parts: visit_all(node.parts))
end

#visit_interpolated_string_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 438

def visit_interpolated_string_node(node)
  node.copy(parts: visit_all(node.parts))
end

#visit_interpolated_symbol_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 443

def visit_interpolated_symbol_node(node)
  node.copy(parts: visit_all(node.parts))
end

#visit_interpolated_x_string_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 448

def visit_interpolated_x_string_node(node)
  node.copy(parts: visit_all(node.parts))
end

#visit_it_local_variable_read_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 453

def visit_it_local_variable_read_node(node)
  node.copy
end

#visit_it_parameters_node(node)

Copy a ItParametersNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 458

def visit_it_parameters_node(node)
  node.copy
end

#visit_keyword_hash_node(node)

Copy a KeywordHashNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 463

def visit_keyword_hash_node(node)
  node.copy(elements: visit_all(node.elements))
end

#visit_keyword_rest_parameter_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 468

def visit_keyword_rest_parameter_node(node)
  node.copy
end

#visit_lambda_node(node)

Copy a LambdaNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 473

def visit_lambda_node(node)
  node.copy(parameters: visit(node.parameters), body: visit(node.body))
end

#visit_local_variable_and_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 478

def visit_local_variable_and_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_local_variable_operator_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 483

def visit_local_variable_operator_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_local_variable_or_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 488

def visit_local_variable_or_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_local_variable_read_node(node)

Copy a LocalVariableReadNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 493

def visit_local_variable_read_node(node)
  node.copy
end

#visit_local_variable_target_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 498

def visit_local_variable_target_node(node)
  node.copy
end

#visit_local_variable_write_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 503

def visit_local_variable_write_node(node)
  node.copy(value: visit(node.value))
end

#visit_match_last_line_node(node)

Copy a MatchLastLineNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 508

def visit_match_last_line_node(node)
  node.copy
end

#visit_match_predicate_node(node)

Copy a MatchPredicateNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 513

def visit_match_predicate_node(node)
  node.copy(value: visit(node.value), pattern: visit(node.pattern))
end

#visit_match_required_node(node)

Copy a MatchRequiredNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 518

def visit_match_required_node(node)
  node.copy(value: visit(node.value), pattern: visit(node.pattern))
end

#visit_match_write_node(node)

Copy a MatchWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 523

def visit_match_write_node(node)
  node.copy(call: visit(node.call), targets: visit_all(node.targets))
end

#visit_missing_node(node)

Copy a MissingNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 528

def visit_missing_node(node)
  node.copy
end

#visit_module_node(node)

Copy a ModuleNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 533

def visit_module_node(node)
  node.copy(constant_path: visit(node.constant_path), body: visit(node.body))
end

#visit_multi_target_node(node)

Copy a MultiTargetNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 538

def visit_multi_target_node(node)
  node.copy(lefts: visit_all(node.lefts), rest: visit(node.rest), rights: visit_all(node.rights))
end

#visit_multi_write_node(node)

Copy a MultiWriteNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 543

def visit_multi_write_node(node)
  node.copy(lefts: visit_all(node.lefts), rest: visit(node.rest), rights: visit_all(node.rights), value: visit(node.value))
end

#visit_next_node(node)

Copy a NextNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 548

def visit_next_node(node)
  node.copy(arguments: visit(node.arguments))
end

#visit_nil_node(node)

Copy a NilNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 553

def visit_nil_node(node)
  node.copy
end

#visit_no_keywords_parameter_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 558

def visit_no_keywords_parameter_node(node)
  node.copy
end

#visit_numbered_parameters_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 563

def visit_numbered_parameters_node(node)
  node.copy
end

#visit_numbered_reference_read_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 568

def visit_numbered_reference_read_node(node)
  node.copy
end

#visit_optional_keyword_parameter_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 573

def visit_optional_keyword_parameter_node(node)
  node.copy(value: visit(node.value))
end

#visit_optional_parameter_node(node)

Copy a OptionalParameterNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 578

def visit_optional_parameter_node(node)
  node.copy(value: visit(node.value))
end

#visit_or_node(node)

Copy a OrNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 583

def visit_or_node(node)
  node.copy(left: visit(node.left), right: visit(node.right))
end

#visit_parameters_node(node)

Copy a ParametersNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 588

def visit_parameters_node(node)
  node.copy(requireds: visit_all(node.requireds), optionals: visit_all(node.optionals), rest: visit(node.rest), posts: visit_all(node.posts), keywords: visit_all(node.keywords), keyword_rest: visit(node.keyword_rest), block: visit(node.block))
end

#visit_parentheses_node(node)

Copy a ParenthesesNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 593

def visit_parentheses_node(node)
  node.copy(body: visit(node.body))
end

#visit_pinned_expression_node(node)

Copy a PinnedExpressionNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 598

def visit_pinned_expression_node(node)
  node.copy(expression: visit(node.expression))
end

#visit_pinned_variable_node(node)

Copy a PinnedVariableNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 603

def visit_pinned_variable_node(node)
  node.copy(variable: visit(node.variable))
end

#visit_post_execution_node(node)

Copy a PostExecutionNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 608

def visit_post_execution_node(node)
  node.copy(statements: visit(node.statements))
end

#visit_pre_execution_node(node)

Copy a PreExecutionNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 613

def visit_pre_execution_node(node)
  node.copy(statements: visit(node.statements))
end

#visit_program_node(node)

Copy a ProgramNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 618

def visit_program_node(node)
  node.copy(statements: visit(node.statements))
end

#visit_range_node(node)

Copy a RangeNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 623

def visit_range_node(node)
  node.copy(left: visit(node.left), right: visit(node.right))
end

#visit_rational_node(node)

Copy a RationalNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 628

def visit_rational_node(node)
  node.copy
end

#visit_redo_node(node)

Copy a RedoNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 633

def visit_redo_node(node)
  node.copy
end

#visit_regular_expression_node(node)

Copy a RegularExpressionNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 638

def visit_regular_expression_node(node)
  node.copy
end

#visit_required_keyword_parameter_node(node)

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 643

def visit_required_keyword_parameter_node(node)
  node.copy
end

#visit_required_parameter_node(node)

Copy a RequiredParameterNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 648

def visit_required_parameter_node(node)
  node.copy
end

#visit_rescue_modifier_node(node)

Copy a RescueModifierNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 653

def visit_rescue_modifier_node(node)
  node.copy(expression: visit(node.expression), rescue_expression: visit(node.rescue_expression))
end

#visit_rescue_node(node)

Copy a RescueNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 658

def visit_rescue_node(node)
  node.copy(exceptions: visit_all(node.exceptions), reference: visit(node.reference), statements: visit(node.statements), subsequent: visit(node.subsequent))
end

#visit_rest_parameter_node(node)

Copy a RestParameterNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 663

def visit_rest_parameter_node(node)
  node.copy
end

#visit_retry_node(node)

Copy a RetryNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 668

def visit_retry_node(node)
  node.copy
end

#visit_return_node(node)

Copy a ReturnNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 673

def visit_return_node(node)
  node.copy(arguments: visit(node.arguments))
end

#visit_self_node(node)

Copy a SelfNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 678

def visit_self_node(node)
  node.copy
end

#visit_shareable_constant_node(node)

Copy a ShareableConstantNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 683

def visit_shareable_constant_node(node)
  node.copy(write: visit(node.write))
end

#visit_singleton_class_node(node)

Copy a SingletonClassNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 688

def visit_singleton_class_node(node)
  node.copy(expression: visit(node.expression), body: visit(node.body))
end

#visit_source_encoding_node(node)

Copy a SourceEncodingNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 693

def visit_source_encoding_node(node)
  node.copy
end

#visit_source_file_node(node)

Copy a SourceFileNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 698

def visit_source_file_node(node)
  node.copy
end

#visit_source_line_node(node)

Copy a SourceLineNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 703

def visit_source_line_node(node)
  node.copy
end

#visit_splat_node(node)

Copy a SplatNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 708

def visit_splat_node(node)
  node.copy(expression: visit(node.expression))
end

#visit_statements_node(node)

Copy a StatementsNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 713

def visit_statements_node(node)
  node.copy(body: visit_all(node.body))
end

#visit_string_node(node)

Copy a StringNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 718

def visit_string_node(node)
  node.copy
end

#visit_super_node(node)

Copy a SuperNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 723

def visit_super_node(node)
  node.copy(arguments: visit(node.arguments), block: visit(node.block))
end

#visit_symbol_node(node)

Copy a SymbolNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 728

def visit_symbol_node(node)
  node.copy
end

#visit_true_node(node)

Copy a TrueNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 733

def visit_true_node(node)
  node.copy
end

#visit_undef_node(node)

Copy a UndefNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 738

def visit_undef_node(node)
  node.copy(names: visit_all(node.names))
end

#visit_unless_node(node)

Copy a UnlessNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 743

def visit_unless_node(node)
  node.copy(predicate: visit(node.predicate), statements: visit(node.statements), else_clause: visit(node.else_clause))
end

#visit_until_node(node)

Copy a UntilNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 748

def visit_until_node(node)
  node.copy(predicate: visit(node.predicate), statements: visit(node.statements))
end

#visit_when_node(node)

Copy a WhenNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 753

def visit_when_node(node)
  node.copy(conditions: visit_all(node.conditions), statements: visit(node.statements))
end

#visit_while_node(node)

Copy a WhileNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 758

def visit_while_node(node)
  node.copy(predicate: visit(node.predicate), statements: visit(node.statements))
end

#visit_x_string_node(node)

Copy a XStringNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 763

def visit_x_string_node(node)
  node.copy
end

#visit_yield_node(node)

Copy a YieldNode node

[ GitHub ]

  
# File 'lib/prism/mutation_compiler.rb', line 768

def visit_yield_node(node)
  node.copy(arguments: visit(node.arguments))
end