refract 1.0.0.beta1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/refract/basic_visitor.rb +7 -2
  4. data/lib/refract/converter.rb +195 -23
  5. data/lib/refract/formatter.rb +83 -50
  6. data/lib/refract/mutation_visitor.rb +111 -115
  7. data/lib/refract/nodes/alias_global_variable_node.rb +3 -1
  8. data/lib/refract/nodes/alias_method_node.rb +3 -1
  9. data/lib/refract/nodes/alternation_pattern_node.rb +3 -1
  10. data/lib/refract/nodes/and_node.rb +3 -1
  11. data/lib/refract/nodes/arguments_node.rb +3 -1
  12. data/lib/refract/nodes/array_node.rb +3 -1
  13. data/lib/refract/nodes/array_pattern_node.rb +3 -1
  14. data/lib/refract/nodes/assoc_node.rb +3 -1
  15. data/lib/refract/nodes/assoc_splat_node.rb +3 -1
  16. data/lib/refract/nodes/back_reference_read_node.rb +3 -1
  17. data/lib/refract/nodes/begin_node.rb +3 -1
  18. data/lib/refract/nodes/block_argument_node.rb +3 -1
  19. data/lib/refract/nodes/block_local_variable_node.rb +3 -1
  20. data/lib/refract/nodes/block_node.rb +3 -1
  21. data/lib/refract/nodes/block_parameter_node.rb +3 -1
  22. data/lib/refract/nodes/block_parameters_node.rb +3 -1
  23. data/lib/refract/nodes/break_node.rb +3 -1
  24. data/lib/refract/nodes/call_and_write_node.rb +3 -1
  25. data/lib/refract/nodes/call_node.rb +5 -3
  26. data/lib/refract/nodes/call_operator_write_node.rb +3 -1
  27. data/lib/refract/nodes/call_or_write_node.rb +3 -1
  28. data/lib/refract/nodes/call_target_node.rb +3 -1
  29. data/lib/refract/nodes/capture_pattern_node.rb +3 -1
  30. data/lib/refract/nodes/case_match_node.rb +3 -1
  31. data/lib/refract/nodes/case_node.rb +3 -1
  32. data/lib/refract/nodes/class_node.rb +3 -1
  33. data/lib/refract/nodes/class_variable_and_write_node.rb +3 -1
  34. data/lib/refract/nodes/class_variable_operator_write_node.rb +3 -1
  35. data/lib/refract/nodes/class_variable_or_write_node.rb +3 -1
  36. data/lib/refract/nodes/class_variable_read_node.rb +3 -1
  37. data/lib/refract/nodes/class_variable_target_node.rb +3 -1
  38. data/lib/refract/nodes/class_variable_write_node.rb +3 -1
  39. data/lib/refract/nodes/constant_and_write_node.rb +3 -1
  40. data/lib/refract/nodes/constant_operator_write_node.rb +3 -1
  41. data/lib/refract/nodes/constant_or_write_node.rb +3 -1
  42. data/lib/refract/nodes/constant_path_and_write_node.rb +3 -1
  43. data/lib/refract/nodes/constant_path_node.rb +14 -0
  44. data/lib/refract/nodes/constant_path_operator_write_node.rb +3 -1
  45. data/lib/refract/nodes/constant_path_or_write_node.rb +3 -1
  46. data/lib/refract/nodes/constant_path_target_node.rb +3 -1
  47. data/lib/refract/nodes/constant_path_write_node.rb +3 -1
  48. data/lib/refract/nodes/constant_read_node.rb +3 -1
  49. data/lib/refract/nodes/constant_target_node.rb +3 -1
  50. data/lib/refract/nodes/constant_write_node.rb +3 -1
  51. data/lib/refract/nodes/def_node.rb +3 -1
  52. data/lib/refract/nodes/defined_node.rb +3 -1
  53. data/lib/refract/nodes/else_node.rb +3 -1
  54. data/lib/refract/nodes/embedded_statements_node.rb +3 -1
  55. data/lib/refract/nodes/embedded_variable_node.rb +3 -1
  56. data/lib/refract/nodes/ensure_node.rb +3 -1
  57. data/lib/refract/nodes/false_node.rb +3 -0
  58. data/lib/refract/nodes/find_pattern_node.rb +3 -1
  59. data/lib/refract/nodes/flip_flop_node.rb +3 -1
  60. data/lib/refract/nodes/float_node.rb +3 -1
  61. data/lib/refract/nodes/for_node.rb +3 -1
  62. data/lib/refract/nodes/forwarding_arguments_node.rb +3 -0
  63. data/lib/refract/nodes/forwarding_parameter_node.rb +3 -0
  64. data/lib/refract/nodes/forwarding_super_node.rb +3 -1
  65. data/lib/refract/nodes/global_variable_and_write_node.rb +3 -1
  66. data/lib/refract/nodes/global_variable_operator_write_node.rb +3 -1
  67. data/lib/refract/nodes/global_variable_or_write_node.rb +3 -1
  68. data/lib/refract/nodes/global_variable_read_node.rb +3 -1
  69. data/lib/refract/nodes/global_variable_target_node.rb +3 -1
  70. data/lib/refract/nodes/global_variable_write_node.rb +3 -1
  71. data/lib/refract/nodes/hash_node.rb +3 -1
  72. data/lib/refract/nodes/hash_pattern_node.rb +3 -1
  73. data/lib/refract/nodes/if_node.rb +5 -2
  74. data/lib/refract/nodes/imaginary_node.rb +3 -1
  75. data/lib/refract/nodes/implicit_node.rb +3 -1
  76. data/lib/refract/nodes/implicit_rest_node.rb +3 -0
  77. data/lib/refract/nodes/in_node.rb +3 -1
  78. data/lib/refract/nodes/index_and_write_node.rb +3 -1
  79. data/lib/refract/nodes/index_operator_write_node.rb +3 -1
  80. data/lib/refract/nodes/index_or_write_node.rb +3 -1
  81. data/lib/refract/nodes/index_target_node.rb +4 -2
  82. data/lib/refract/nodes/instance_variable_and_write_node.rb +3 -1
  83. data/lib/refract/nodes/instance_variable_operator_write_node.rb +3 -1
  84. data/lib/refract/nodes/instance_variable_or_write_node.rb +3 -1
  85. data/lib/refract/nodes/instance_variable_read_node.rb +3 -1
  86. data/lib/refract/nodes/instance_variable_target_node.rb +3 -1
  87. data/lib/refract/nodes/instance_variable_write_node.rb +3 -1
  88. data/lib/refract/nodes/integer_node.rb +3 -1
  89. data/lib/refract/nodes/interpolated_match_last_line_node.rb +3 -1
  90. data/lib/refract/nodes/interpolated_regular_expression_node.rb +3 -1
  91. data/lib/refract/nodes/interpolated_string_node.rb +3 -1
  92. data/lib/refract/nodes/interpolated_symbol_node.rb +3 -1
  93. data/lib/refract/nodes/interpolated_x_string_node.rb +3 -1
  94. data/lib/refract/nodes/it_local_variable_read_node.rb +3 -0
  95. data/lib/refract/nodes/it_parameters_node.rb +3 -0
  96. data/lib/refract/nodes/keyword_hash_node.rb +3 -1
  97. data/lib/refract/nodes/keyword_rest_parameter_node.rb +3 -1
  98. data/lib/refract/nodes/lambda_node.rb +3 -1
  99. data/lib/refract/nodes/local_variable_and_write_node.rb +3 -1
  100. data/lib/refract/nodes/local_variable_operator_write_node.rb +3 -1
  101. data/lib/refract/nodes/local_variable_or_write_node.rb +3 -1
  102. data/lib/refract/nodes/local_variable_read_node.rb +3 -1
  103. data/lib/refract/nodes/local_variable_target_node.rb +3 -1
  104. data/lib/refract/nodes/local_variable_write_node.rb +3 -1
  105. data/lib/refract/nodes/match_last_line_node.rb +3 -1
  106. data/lib/refract/nodes/match_predicate_node.rb +3 -1
  107. data/lib/refract/nodes/match_required_node.rb +3 -1
  108. data/lib/refract/nodes/match_write_node.rb +3 -1
  109. data/lib/refract/nodes/missing_node.rb +3 -0
  110. data/lib/refract/nodes/module_node.rb +3 -1
  111. data/lib/refract/nodes/multi_target_node.rb +3 -1
  112. data/lib/refract/nodes/multi_write_node.rb +3 -1
  113. data/lib/refract/nodes/next_node.rb +3 -1
  114. data/lib/refract/nodes/nil_node.rb +3 -0
  115. data/lib/refract/nodes/no_keywords_parameter_node.rb +3 -0
  116. data/lib/refract/nodes/numbered_parameters_node.rb +3 -0
  117. data/lib/refract/nodes/numbered_reference_read_node.rb +3 -1
  118. data/lib/refract/nodes/optional_keyword_parameter_node.rb +3 -1
  119. data/lib/refract/nodes/optional_parameter_node.rb +3 -1
  120. data/lib/refract/nodes/or_node.rb +3 -1
  121. data/lib/refract/nodes/parameters_node.rb +3 -1
  122. data/lib/refract/nodes/parentheses_node.rb +3 -1
  123. data/lib/refract/nodes/pinned_expression_node.rb +3 -1
  124. data/lib/refract/nodes/pinned_variable_node.rb +3 -1
  125. data/lib/refract/nodes/post_execution_node.rb +3 -1
  126. data/lib/refract/nodes/pre_execution_node.rb +3 -1
  127. data/lib/refract/nodes/program_node.rb +4 -2
  128. data/lib/refract/nodes/range_node.rb +3 -1
  129. data/lib/refract/nodes/rational_node.rb +3 -1
  130. data/lib/refract/nodes/redo_node.rb +3 -0
  131. data/lib/refract/nodes/regular_expression_node.rb +3 -1
  132. data/lib/refract/nodes/required_keyword_parameter_node.rb +3 -1
  133. data/lib/refract/nodes/required_parameter_node.rb +3 -1
  134. data/lib/refract/nodes/rescue_modifier_node.rb +3 -1
  135. data/lib/refract/nodes/rescue_node.rb +3 -1
  136. data/lib/refract/nodes/rest_parameter_node.rb +3 -1
  137. data/lib/refract/nodes/retry_node.rb +3 -0
  138. data/lib/refract/nodes/return_node.rb +3 -1
  139. data/lib/refract/nodes/self_node.rb +3 -0
  140. data/lib/refract/nodes/shareable_constant_node.rb +3 -1
  141. data/lib/refract/nodes/singleton_class_node.rb +3 -1
  142. data/lib/refract/nodes/source_encoding_node.rb +3 -0
  143. data/lib/refract/nodes/source_file_node.rb +3 -0
  144. data/lib/refract/nodes/source_line_node.rb +3 -0
  145. data/lib/refract/nodes/splat_node.rb +3 -1
  146. data/lib/refract/nodes/statements_node.rb +3 -1
  147. data/lib/refract/nodes/string_node.rb +3 -1
  148. data/lib/refract/nodes/super_node.rb +3 -1
  149. data/lib/refract/nodes/symbol_node.rb +3 -1
  150. data/lib/refract/nodes/true_node.rb +3 -0
  151. data/lib/refract/nodes/undef_node.rb +3 -1
  152. data/lib/refract/nodes/unless_node.rb +5 -2
  153. data/lib/refract/nodes/until_node.rb +5 -2
  154. data/lib/refract/nodes/when_node.rb +3 -1
  155. data/lib/refract/nodes/while_node.rb +5 -2
  156. data/lib/refract/nodes/x_string_node.rb +3 -1
  157. data/lib/refract/nodes/yield_node.rb +3 -1
  158. data/lib/refract/version.rb +1 -1
  159. data/lib/refract/visitor.rb +4 -4
  160. data/lib/refract.rb +11 -2
  161. metadata +2 -2
  162. data/lib/refract/nodes/constant_path.rb +0 -12
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class AliasGlobalVariableNode < Node
5
- def initialize(new_name:, old_name:)
5
+ def initialize(prism_node: nil, new_name:, old_name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @new_name = new_name => GlobalVariableReadNode
7
8
  @old_name = old_name => GlobalVariableReadNode
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :new_name, :old_name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class AliasMethodNode < Node
5
- def initialize(new_name:, old_name:)
5
+ def initialize(prism_node: nil, new_name:, old_name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @new_name = new_name
7
8
  @old_name = old_name
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :new_name, :old_name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class AlternationPatternNode < Node
5
- def initialize(left:, right:)
5
+ def initialize(prism_node: nil, left:, right:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @left = left
7
8
  @right = right
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :left, :right
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class AndNode < Node
5
- def initialize(left:, operator:, right:)
5
+ def initialize(prism_node: nil, left:, operator:, right:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @left = left
7
8
  @operator = operator
8
9
  @right = right
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :left, :operator, :right
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class ArgumentsNode < Node
5
- def initialize(arguments:)
5
+ def initialize(prism_node: nil, arguments:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @arguments = arguments
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :arguments
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class ArrayNode < Node
5
- def initialize(elements:)
5
+ def initialize(prism_node: nil, elements:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @elements = elements
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :elements
@@ -2,11 +2,13 @@
2
2
 
3
3
  module Refract
4
4
  class ArrayPatternNode < Node
5
- def initialize(constant:, requireds:, rest:, posts:)
5
+ def initialize(prism_node: nil, constant:, requireds:, rest:, posts:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @constant = constant
7
8
  @requireds = requireds
8
9
  @rest = rest
9
10
  @posts = posts
11
+ freeze
10
12
  end
11
13
 
12
14
  attr_accessor :constant, :requireds, :rest, :posts
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class AssocNode < Node
5
- def initialize(key:, value:)
5
+ def initialize(prism_node: nil, key:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @key = key
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :key, :value
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class AssocSplatNode < Node
5
- def initialize(value:)
5
+ def initialize(prism_node: nil, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @value = value
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :value
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class BackReferenceReadNode < Node
5
- def initialize(name:)
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :name
@@ -2,11 +2,13 @@
2
2
 
3
3
  module Refract
4
4
  class BeginNode < Node
5
- def initialize(statements:, rescue_clause:, else_clause:, ensure_clause:)
5
+ def initialize(prism_node: nil, statements:, rescue_clause:, else_clause:, ensure_clause:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @statements = statements
7
8
  @rescue_clause = rescue_clause
8
9
  @else_clause = else_clause
9
10
  @ensure_clause = ensure_clause
11
+ freeze
10
12
  end
11
13
 
12
14
  attr_accessor :statements, :rescue_clause, :else_clause, :ensure_clause
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class BlockArgumentNode < Node
5
- def initialize(expression:)
5
+ def initialize(prism_node: nil, expression:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @expression = expression
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :expression
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class BlockLocalVariableNode < Node
5
- def initialize(name:)
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class BlockNode < Node
5
- def initialize(parameters:, body:)
5
+ def initialize(prism_node: nil, parameters:, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @parameters = parameters
7
8
  @body = body
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :parameters, :body
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class BlockParameterNode < Node
5
- def initialize(name:)
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class BlockParametersNode < Node
5
- def initialize(parameters:, locals:)
5
+ def initialize(prism_node: nil, parameters:, locals:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @parameters = parameters
7
8
  @locals = locals
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :parameters, :locals
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class BreakNode < Node
5
- def initialize(arguments:)
5
+ def initialize(prism_node: nil, arguments:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @arguments = arguments
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :arguments
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class CallAndWriteNode < Node
5
- def initialize(receiver:, read_name:, value:)
5
+ def initialize(prism_node: nil, receiver:, read_name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @receiver = receiver
7
8
  @read_name = read_name
8
9
  @value = value
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :receiver, :read_name, :value
@@ -2,13 +2,15 @@
2
2
 
3
3
  module Refract
4
4
  class CallNode < Node
5
- def initialize(receiver:, message:, arguments:, block:)
5
+ def initialize(prism_node: nil, receiver: nil, name:, arguments: nil, block: nil)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @receiver = receiver
7
- @message = message
8
+ @name = name => Symbol
8
9
  @arguments = arguments
9
10
  @block = block
11
+ freeze
10
12
  end
11
13
 
12
- attr_accessor :receiver, :message, :arguments, :block
14
+ attr_accessor :receiver, :name, :arguments, :block
13
15
  end
14
16
  end
@@ -2,11 +2,13 @@
2
2
 
3
3
  module Refract
4
4
  class CallOperatorWriteNode < Node
5
- def initialize(receiver:, read_name:, binary_operator:, value:)
5
+ def initialize(prism_node: nil, receiver:, read_name:, binary_operator:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @receiver = receiver
7
8
  @read_name = read_name
8
9
  @binary_operator = binary_operator
9
10
  @value = value
11
+ freeze
10
12
  end
11
13
 
12
14
  attr_accessor :receiver, :read_name, :binary_operator, :value
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class CallOrWriteNode < Node
5
- def initialize(receiver:, read_name:, value:)
5
+ def initialize(prism_node: nil, receiver:, read_name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @receiver = receiver
7
8
  @read_name = read_name
8
9
  @value = value
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :receiver, :read_name, :value
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class CallTargetNode < Node
5
- def initialize(receiver:, name:)
5
+ def initialize(prism_node: nil, receiver:, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @receiver = receiver
7
8
  @name = name
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :receiver, :name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class CapturePatternNode < Node
5
- def initialize(value:, target:)
5
+ def initialize(prism_node: nil, value:, target:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @value = value
7
8
  @target = target
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :value, :target
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class CaseMatchNode < Node
5
- def initialize(predicate:, conditions:, else_clause:)
5
+ def initialize(prism_node: nil, predicate:, conditions:, else_clause:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @predicate = predicate
7
8
  @conditions = conditions
8
9
  @else_clause = else_clause
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :predicate, :conditions, :else_clause
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class CaseNode < Node
5
- def initialize(predicate:, conditions:, else_clause:)
5
+ def initialize(prism_node: nil, predicate:, conditions:, else_clause:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @predicate = predicate
7
8
  @conditions = conditions
8
9
  @else_clause = else_clause
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :predicate, :conditions, :else_clause
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class ClassNode < Node
5
- def initialize(constant_path:, superclass:, body:)
5
+ def initialize(prism_node: nil, constant_path:, superclass:, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @constant_path = constant_path
7
8
  @superclass = superclass
8
9
  @body = body
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :constant_path, :superclass, :body
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ClassVariableAndWriteNode < Node
5
- def initialize(name:, value:)
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :name, :value
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class ClassVariableOperatorWriteNode < Node
5
- def initialize(name:, value:, binary_operator:)
5
+ def initialize(prism_node: nil, name:, value:, binary_operator:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
8
9
  @binary_operator = binary_operator
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :name, :value, :binary_operator
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ClassVariableOrWriteNode < Node
5
- def initialize(name:, value:)
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :name, :value
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class ClassVariableReadNode < Node
5
- def initialize(name:)
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :name
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class ClassVariableTargetNode < Node
5
- def initialize(name:)
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ClassVariableWriteNode < Node
5
- def initialize(name:, value:)
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :name, :value
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantAndWriteNode < Node
5
- def initialize(name:, value:)
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :name, :value
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantOperatorWriteNode < Node
5
- def initialize(name:, value:, binary_operator:)
5
+ def initialize(prism_node: nil, name:, value:, binary_operator:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
8
9
  @binary_operator = binary_operator
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :name, :value, :binary_operator
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantOrWriteNode < Node
5
- def initialize(name:, value:)
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :name, :value
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantPathAndWriteNode < Node
5
- def initialize(target:, value:)
5
+ def initialize(prism_node: nil, target:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @target = target
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :target, :value
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refract
4
+ class ConstantPathNode < Node
5
+ def initialize(prism_node: nil, parent: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
7
+ @parent = parent
8
+ @name = name
9
+ freeze
10
+ end
11
+
12
+ attr_accessor :parent, :name
13
+ end
14
+ end
@@ -2,10 +2,12 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantPathOperatorWriteNode < Node
5
- def initialize(target:, value:, binary_operator:)
5
+ def initialize(prism_node: nil, target:, value:, binary_operator:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @target = target
7
8
  @value = value
8
9
  @binary_operator = binary_operator
10
+ freeze
9
11
  end
10
12
 
11
13
  attr_accessor :target, :value, :binary_operator
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantPathOrWriteNode < Node
5
- def initialize(target:, value:)
5
+ def initialize(prism_node: nil, target:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @target = target
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :target, :value
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantPathTargetNode < Node
5
- def initialize(parent:, name:)
5
+ def initialize(prism_node: nil, parent:, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @parent = parent
7
8
  @name = name
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :parent, :name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantPathWriteNode < Node
5
- def initialize(target:, value:)
5
+ def initialize(prism_node: nil, target:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @target = target
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :target, :value
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantReadNode < Node
5
- def initialize(name:)
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :name
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantTargetNode < Node
5
- def initialize(name:)
5
+ def initialize(prism_node: nil, name:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :name
@@ -2,9 +2,11 @@
2
2
 
3
3
  module Refract
4
4
  class ConstantWriteNode < Node
5
- def initialize(name:, value:)
5
+ def initialize(prism_node: nil, name:, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @value = value
9
+ freeze
8
10
  end
9
11
 
10
12
  attr_accessor :name, :value
@@ -2,11 +2,13 @@
2
2
 
3
3
  module Refract
4
4
  class DefNode < Node
5
- def initialize(name:, receiver:, parameters:, body:)
5
+ def initialize(prism_node: nil, name:, receiver:, parameters:, body:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @name = name
7
8
  @receiver = receiver
8
9
  @parameters = parameters
9
10
  @body = body
11
+ freeze
10
12
  end
11
13
 
12
14
  attr_accessor :name, :receiver, :parameters, :body
@@ -2,8 +2,10 @@
2
2
 
3
3
  module Refract
4
4
  class DefinedNode < Node
5
- def initialize(value:)
5
+ def initialize(prism_node: nil, value:)
6
+ @prism_node = prism_node => Prism::Node | nil
6
7
  @value = value
8
+ freeze
7
9
  end
8
10
 
9
11
  attr_accessor :value