ruby_mod_kit 0.0.4 → 0.0.5

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +89 -0
  3. data/lib/ruby_mod_kit/core_ext/eval.rb +6 -10
  4. data/lib/ruby_mod_kit/corrector.rb +3 -0
  5. data/lib/ruby_mod_kit/corrector_manager.rb +10 -6
  6. data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb +1 -1
  7. data/lib/ruby_mod_kit/feature/overload/overload_mission.rb +2 -3
  8. data/lib/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rb +56 -0
  9. data/lib/ruby_mod_kit/feature/type/check/arguments.rb +23 -0
  10. data/lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb +9 -4
  11. data/lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb +27 -5
  12. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb +3 -2
  13. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rb +1 -2
  14. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rb +5 -4
  15. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rb +1 -1
  16. data/lib/ruby_mod_kit/feature/type/return_value_colon_corrector.rb +1 -0
  17. data/lib/ruby_mod_kit/feature/type/type_attr_mission.rb +3 -9
  18. data/lib/ruby_mod_kit/feature/type/yard/type_parameter_mission.rb +35 -0
  19. data/lib/ruby_mod_kit/feature/type/yard/type_return_mission.rb +30 -0
  20. data/lib/ruby_mod_kit/feature/type/yard.rb +31 -0
  21. data/lib/ruby_mod_kit/generation.rb +55 -20
  22. data/lib/ruby_mod_kit/memo/ivar_memo.rb +2 -0
  23. data/lib/ruby_mod_kit/memo/parameter_memo.rb +4 -2
  24. data/lib/ruby_mod_kit/memo_pad.rb +6 -0
  25. data/lib/ruby_mod_kit/mission.rb +0 -4
  26. data/lib/ruby_mod_kit/node/base_node.rb +11 -2
  27. data/lib/ruby_mod_kit/node/begin_node.rb +31 -0
  28. data/lib/ruby_mod_kit/node/parameter_node.rb +2 -2
  29. data/lib/ruby_mod_kit/node/wrap.rb +3 -1
  30. data/lib/ruby_mod_kit/node.rb +1 -0
  31. data/lib/ruby_mod_kit/version.rb +1 -1
  32. data/lib/ruby_mod_kit.rb +0 -5
  33. data/sig/generated/ruby_mod_kit/core_ext/eval.rbs +4 -2
  34. data/sig/generated/ruby_mod_kit/corrector.rbs +3 -0
  35. data/sig/generated/ruby_mod_kit/corrector_manager.rbs +1 -1
  36. data/sig/generated/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rbs +16 -0
  37. data/sig/generated/ruby_mod_kit/feature/type/check/arguments.rbs +15 -0
  38. data/sig/generated/ruby_mod_kit/feature/type/parameter_arrow_corrector.rbs +5 -0
  39. data/sig/generated/ruby_mod_kit/feature/type/yard/type_parameter_mission.rbs +16 -0
  40. data/sig/generated/ruby_mod_kit/feature/type/yard/type_return_mission.rbs +16 -0
  41. data/sig/generated/ruby_mod_kit/feature/type/yard.rbs +17 -0
  42. data/sig/generated/ruby_mod_kit/generation.rbs +34 -10
  43. data/sig/generated/ruby_mod_kit/memo/ivar_memo.rbs +4 -0
  44. data/sig/generated/ruby_mod_kit/memo/parameter_memo.rbs +6 -2
  45. data/sig/generated/ruby_mod_kit/memo_pad.rbs +4 -0
  46. data/sig/generated/ruby_mod_kit/mission.rbs +0 -4
  47. data/sig/generated/ruby_mod_kit/node/base_node.rbs +5 -1
  48. data/sig/generated/ruby_mod_kit/node/begin_node.rbs +26 -0
  49. data/sig/generated/ruby_mod_kit/node/parameter_node.rbs +1 -1
  50. metadata +14 -2
@@ -18,6 +18,7 @@ module RubyModKit
18
18
  # @rbs @errors: Array[Prism::ParseError]
19
19
  # @rbs @lines: Array[String]
20
20
  # @rbs @offsets: Array[Integer]
21
+ # @rbs @source: String
21
22
 
22
23
  attr_reader :script #: String
23
24
  attr_reader :memo_pad #: MemoPad
@@ -51,6 +52,7 @@ module RubyModKit
51
52
  @errors = parse_result.errors
52
53
  @lines = parse_result.source.lines
53
54
  @offsets = parse_result.source.offsets
55
+ @source = @script.dup
54
56
  @root_node = Node::ProgramNode.new(parse_result.value)
55
57
  init_missions
56
58
  end
@@ -78,9 +80,6 @@ module RubyModKit
78
80
  else
79
81
  perform_corrector
80
82
  end
81
- @missions.each do |mission|
82
- mission.succ(@offset_diff)
83
- end
84
83
  @memo_pad.succ(@offset_diff)
85
84
 
86
85
  Generation.new(
@@ -115,18 +114,10 @@ module RubyModKit
115
114
  @offset_diff.insert(src_offset, diff)
116
115
  end
117
116
 
118
- # @rbs src_range: Range[Integer]
117
+ # @rbs src_range: Range[Integer | nil]
119
118
  # @rbs return: String
120
119
  def [](src_range)
121
- dst_range = Range.new(@offset_diff[src_range.first], @offset_diff[src_range.last], src_range.exclude_end?)
122
- @script[dst_range] || raise(RubyModKit::Error, "Invalid range")
123
- end
124
-
125
- # @rbs offset: Integer
126
- # @rbs return: String
127
- def line_by_offset(offset)
128
- offset = @offset_diff[offset]
129
- (@script.match(/.*\n?/, offset) && Regexp.last_match(0)) || raise(RubyModKit::Error)
120
+ @source[src_range] || raise(RubyModKit::Error, "Invalid range")
130
121
  end
131
122
 
132
123
  # @rbs (Integer) -> String
@@ -146,7 +137,7 @@ module RubyModKit
146
137
  # @rbs line_num: Integer
147
138
  # @rbs return: String
148
139
  def line__overload0(line_num)
149
- line_by_offset(@offsets[line_num])
140
+ @lines[line_num] || raise(RubyModKit::Error)
150
141
  end
151
142
 
152
143
  # @rbs node: Node::BaseNode
@@ -159,29 +150,73 @@ module RubyModKit
159
150
  # @rbs return: String
160
151
  def line__overload2(parse_error)
161
152
  line(parse_error.location.start_line - 1)
153
+ rescue RubyModKit::Error
154
+ ""
162
155
  end
163
156
 
164
157
  # @rbs (Integer) -> (Integer | nil)
158
+ # | (Node::BaseNode) -> (Integer | nil)
159
+ # | (Node::BaseNode, Integer) -> (Integer | nil)
165
160
  # | (Prism::ParseError) -> (Integer | nil)
166
- def src_offset(*args)
161
+ def line_offset(*args)
167
162
  case args
168
163
  in [Integer]
169
- src_offset__overload0(*args)
164
+ line_offset__overload0(*args)
165
+ in [Node::BaseNode]
166
+ line_offset__overload1(*args)
167
+ in [Node::BaseNode, Integer]
168
+ line_offset__overload2(*args)
170
169
  in [Prism::ParseError]
171
- src_offset__overload1(*args)
170
+ line_offset__overload3(*args)
172
171
  end
173
172
  end
174
173
 
175
174
  # @rbs line_num: Integer
176
175
  # @rbs return: Integer | nil
177
- def src_offset__overload0(line_num)
176
+ def line_offset__overload0(line_num)
178
177
  @offsets[line_num]
179
178
  end
180
179
 
180
+ # @rbs node: Node::BaseNode
181
+ # @rbs return: Integer | nil
182
+ def line_offset__overload1(node)
183
+ line_offset(node, 0)
184
+ end
185
+
186
+ # @rbs node: Node::BaseNode
187
+ # @rbs line_offset: Integer
188
+ # @rbs return: Integer | nil
189
+ def line_offset__overload2(node, line_offset)
190
+ line_offset(node.location.start_line - 1 + line_offset)
191
+ end
192
+
181
193
  # @rbs parse_error: Prism::ParseError
182
194
  # @rbs return: Integer | nil
183
- def src_offset__overload1(parse_error)
184
- src_offset(parse_error.location.start_line - 1)
195
+ def line_offset__overload3(parse_error)
196
+ line_offset(parse_error.location.start_line - 1)
197
+ end
198
+
199
+ # @rbs (Integer) -> String
200
+ # | (Node::BaseNode) -> String
201
+ def line_indent(*args)
202
+ case args
203
+ in [Integer]
204
+ line_indent__overload0(*args)
205
+ in [Node::BaseNode]
206
+ line_indent__overload1(*args)
207
+ end
208
+ end
209
+
210
+ # @rbs line_num: Integer
211
+ # @rbs return: String
212
+ def line_indent__overload0(line_num)
213
+ line(line_num)[/\A[ \t]*/] || ""
214
+ end
215
+
216
+ # @rbs node: Node::BaseNode
217
+ # @rbs return: String
218
+ def line_indent__overload1(node)
219
+ line_indent(node.location.start_line - 1)
185
220
  end
186
221
 
187
222
  # @rbs return: void
@@ -12,12 +12,14 @@ module RubyModKit
12
12
  # @rbs @indent: String
13
13
  # @rbs @name: Symbol
14
14
  # @rbs @visibility: nil | Symbol
15
+ # @rbs @separator: String
15
16
 
16
17
  attr_reader :type #: nil | String
17
18
  attr_reader :attr_kind #: nil | Symbol
18
19
  attr_accessor :offset #: nil | Integer
19
20
  attr_accessor :indent #: String
20
21
  attr_accessor :visibility #: nil | Symbol
22
+ attr_accessor :separator #: String
21
23
 
22
24
  # @rbs name: Symbol
23
25
  # @rbs return: void
@@ -8,11 +8,13 @@ module RubyModKit
8
8
  class ParameterMemo < OffsetMemo
9
9
  # @rbs @type: String
10
10
  # @rbs @ivar_parameter: bool
11
- # @rbs @qualifier: String
11
+ # @rbs @qualifier: String | nil
12
+ # @rbs @name: Symbol
12
13
 
13
14
  attr_reader :type #: String
14
15
  attr_accessor :ivar_parameter #: bool
15
- attr_accessor :qualifier #: String
16
+ attr_accessor :qualifier #: String | nil
17
+ attr_accessor :name #: Symbol
16
18
 
17
19
  UNTYPED = "untyped"
18
20
 
@@ -68,5 +68,11 @@ module RubyModKit
68
68
 
69
69
  method_memo(def_node).add_parameter(memo)
70
70
  end
71
+
72
+ # @rbs &block: (Memo::ParameterMemo) -> void
73
+ # @rbs return: void
74
+ def each_parameter_memo(&block)
75
+ parameters_memo.each_value(&block)
76
+ end
71
77
  end
72
78
  end
@@ -10,9 +10,5 @@ module RubyModKit
10
10
  def perform(_generation)
11
11
  raise RubyModKit::Error, "Unexpected type #{self.class}"
12
12
  end
13
-
14
- # @rbs offset_diff: OffsetDiff
15
- # @rbs return: void
16
- def succ(offset_diff); end
17
13
  end
18
14
  end
@@ -93,10 +93,14 @@ module RubyModKit
93
93
  end
94
94
 
95
95
  # @rbs offset: Integer
96
+ # @rbs allowed: Array[Class] | nil
96
97
  # @rbs return: Node::DefParentNode | nil
97
- def def_parent_node_at(offset)
98
+ def def_parent_node_at(offset, allowed: nil)
98
99
  node = node_at(offset) || return
99
- [node, *node.ancestors].each { return _1 if _1.is_a?(Node::DefParentNode) }
100
+ [node, *node.ancestors].each do |ancestor_node|
101
+ return ancestor_node if ancestor_node.is_a?(Node::DefParentNode)
102
+ return nil if allowed && !allowed.include?(ancestor_node.class)
103
+ end
100
104
  nil
101
105
  end
102
106
 
@@ -111,6 +115,11 @@ module RubyModKit
111
115
  location.start_offset
112
116
  end
113
117
 
118
+ # @rbs return: String
119
+ def slice
120
+ location.slice
121
+ end
122
+
114
123
  # @rbs return: String
115
124
  def inspect
116
125
  str = +"#<#{self.class} "
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rbs_inline: enabled
4
+
5
+ module RubyModKit
6
+ module Node
7
+ # Transpiler program node
8
+ class BeginNode < Node::BaseNode
9
+ # @rbs @prism_node: Prism::BeginNode
10
+ # @rbs @parent: Node::BaseNode
11
+ # @rbs @prev: Node::BaseNode | nil
12
+
13
+ private attr_reader :prism_node #: Prism::BeginNode
14
+ attr_reader :parent #: Node::BaseNode
15
+ attr_reader :prev #: Node::BaseNode | nil
16
+
17
+ # @rbs prism_node: Prism::BeginNode
18
+ # @rbs parent: Node::BaseNode
19
+ # @rbs prev: Node::BaseNode | nil
20
+ # @rbs return: void
21
+ def initialize(prism_node, parent:, prev: nil)
22
+ @prism_node = prism_node
23
+ @parent = parent
24
+ @prev = prev
25
+ raise RubyModKit::Error unless prism_node.is_a?(Prism::BeginNode)
26
+
27
+ super()
28
+ end
29
+ end
30
+ end
31
+ end
@@ -13,7 +13,7 @@ module RubyModKit
13
13
  # @rbs!
14
14
  # type prism_node = Prism::RequiredParameterNode | Prism::OptionalKeywordParameterNode
15
15
  # | Prism::OptionalParameterNode | Prism::RequiredKeywordParameterNode
16
- # | Prism::RestParameterNode
16
+ # | Prism::RestParameterNode | Prism::BlockParameterNode
17
17
 
18
18
  private attr_reader :prism_node #: prism_node
19
19
  attr_reader :parent #: Node::BaseNode
@@ -30,7 +30,7 @@ module RubyModKit
30
30
  case prism_node
31
31
  when Prism::RequiredParameterNode, Prism::OptionalKeywordParameterNode,
32
32
  Prism::OptionalParameterNode, Prism::RequiredKeywordParameterNode,
33
- Prism::RestParameterNode
33
+ Prism::RestParameterNode, Prism::BlockParameterNode
34
34
  super()
35
35
  else
36
36
  raise RubyModKit::Error, "unexpected prism node #{prism_node.class}"
@@ -20,6 +20,8 @@ module RubyModKit
20
20
  # @rbs return: Node::BaseNode
21
21
  def wrap(prism_node, parent:, prev: nil)
22
22
  case prism_node
23
+ when Prism::BeginNode
24
+ Node::BeginNode.new(prism_node, parent: parent, prev: prev)
23
25
  when Prism::CallNode
24
26
  Node::CallNode.new(prism_node, parent: parent, prev: prev)
25
27
  when Prism::DefNode
@@ -28,7 +30,7 @@ module RubyModKit
28
30
  Node::DefParentNode.new(prism_node, parent: parent, prev: prev)
29
31
  when Prism::RequiredParameterNode, Prism::OptionalKeywordParameterNode,
30
32
  Prism::OptionalParameterNode, Prism::RequiredKeywordParameterNode,
31
- Prism::RestParameterNode
33
+ Prism::RestParameterNode, Prism::BlockParameterNode
32
34
  Node::ParameterNode.new(prism_node, parent: parent, prev: prev)
33
35
  when Prism::StatementsNode
34
36
  Node::StatementsNode.new(prism_node, parent: parent, prev: prev)
@@ -7,6 +7,7 @@ module RubyModKit
7
7
  end
8
8
 
9
9
  require_relative "node/base_node"
10
+ require_relative "node/begin_node"
10
11
  require_relative "node/symbol_node"
11
12
  require_relative "node/def_parent_node"
12
13
  require_relative "node/call_node"
@@ -3,5 +3,5 @@
3
3
  # rbs_inline: enabled
4
4
 
5
5
  module RubyModKit
6
- VERSION = "0.0.4" #: String
6
+ VERSION = "0.0.5" #: String
7
7
  end
data/lib/ruby_mod_kit.rb CHANGED
@@ -89,8 +89,3 @@ require_relative "ruby_mod_kit/memo_pad"
89
89
  require_relative "ruby_mod_kit/mission"
90
90
  require_relative "ruby_mod_kit/node"
91
91
  require_relative "ruby_mod_kit/offset_diff"
92
-
93
- require_relative "ruby_mod_kit/feature/instance_variable_parameter"
94
- require_relative "ruby_mod_kit/feature/overload"
95
- require_relative "ruby_mod_kit/feature/type"
96
- require_relative "ruby_mod_kit/feature/type/rbs_inline"
@@ -6,10 +6,12 @@ module RubyModKit
6
6
  # the extension for eval
7
7
  module Eval
8
8
  # @rbs expr: String
9
- # @rbs *rest: Object
9
+ # @rbs binding: Binding
10
+ # @rbs fname: String
11
+ # @rbs lineno: Integer
10
12
  # @rbs transpile: bool
11
13
  # @rbs return: Object
12
- def self?.eval: (String expr, *Object rest, ?transpile: bool) -> Object
14
+ def self?.eval: (String expr, ?Binding binding, ?String fname, ?Integer lineno, ?transpile: bool) -> Object
13
15
  end
14
16
  end
15
17
 
@@ -10,5 +10,8 @@ module RubyModKit
10
10
  # @rbs _generation: Generation
11
11
  # @rbs return: void
12
12
  def correct: (untyped _parse_error, untyped _generation) -> void
13
+
14
+ # @rbs return: void
15
+ def setup: () -> void
13
16
  end
14
17
  end
@@ -3,7 +3,7 @@
3
3
  module RubyModKit
4
4
  # the class to manege parse error correctors
5
5
  class CorrectorManager
6
- @previous_error_messages: Array[String]
6
+ @previous_source: String
7
7
 
8
8
  @correctors_error_map: Hash[Symbol, Array[Corrector]]
9
9
 
@@ -0,0 +1,16 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ module Check
7
+ # The mission to add magic comment
8
+ class AddArgumentsCheckerMission < Mission
9
+ # @rbs generation: Generation
10
+ # @rbs return: bool
11
+ def perform: (Generation generation) -> bool
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/check/arguments.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ module Check
7
+ # namespace for arguments type checker
8
+ class Arguments < Feature
9
+ # @rbs return: Array[Mission]
10
+ def create_missions: () -> Array[Mission]
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -5,9 +5,14 @@ module RubyModKit
5
5
  class Type
6
6
  # the class to correct `def foo(Bar => bar, *Buz => buz)` -> `def foo(bar, *buz)`
7
7
  class ParameterArrowCorrector < Corrector
8
+ @last_parameter_offsets: Set[Integer]
9
+
8
10
  # @rbs return: Array[Symbol]
9
11
  def correctable_error_types: () -> Array[Symbol]
10
12
 
13
+ # @rbs return: void
14
+ def setup: () -> void
15
+
11
16
  # @rbs parse_error: Prism::ParseError
12
17
  # @rbs generation: Generation
13
18
  # @rbs return: void
@@ -0,0 +1,16 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/yard/type_parameter_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ class Yard
7
+ # The mission for parameter types
8
+ class TypeParameterMission < Mission
9
+ # @rbs generation: Generation
10
+ # @rbs return: bool
11
+ def perform: (Generation generation) -> bool
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/yard/type_return_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ class Yard
7
+ # The mission for return value type
8
+ class TypeReturnMission < Mission
9
+ # @rbs generation: Generation
10
+ # @rbs return: bool
11
+ def perform: (Generation generation) -> bool
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/yard.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ # namespace for type with rbs-line feature
7
+ class Yard < Feature
8
+ # @rbs return: Array[Mission]
9
+ def create_missions: () -> Array[Mission]
10
+
11
+ # @rbs type: String
12
+ # @rbs return: String
13
+ def self.rbs2yard: (String type) -> String
14
+ end
15
+ end
16
+ end
17
+ end
@@ -29,6 +29,8 @@ module RubyModKit
29
29
 
30
30
  @offsets: Array[Integer]
31
31
 
32
+ @source: String
33
+
32
34
  attr_reader script: String
33
35
 
34
36
  attr_reader memo_pad: MemoPad
@@ -73,13 +75,9 @@ module RubyModKit
73
75
  # @rbs return: String
74
76
  def []=: (Integer src_offset, Integer length, String str) -> String
75
77
 
76
- # @rbs src_range: Range[Integer]
77
- # @rbs return: String
78
- def []: (Range[Integer] src_range) -> String
79
-
80
- # @rbs offset: Integer
78
+ # @rbs src_range: Range[Integer | nil]
81
79
  # @rbs return: String
82
- def line_by_offset: (Integer offset) -> String
80
+ def []: (Range[Integer | nil] src_range) -> String
83
81
 
84
82
  # @rbs (Integer) -> String
85
83
  # | (Node::BaseNode) -> String
@@ -101,17 +99,43 @@ module RubyModKit
101
99
  def line__overload2: (Prism::ParseError parse_error) -> String
102
100
 
103
101
  # @rbs (Integer) -> (Integer | nil)
102
+ # | (Node::BaseNode) -> (Integer | nil)
103
+ # | (Node::BaseNode, Integer) -> (Integer | nil)
104
104
  # | (Prism::ParseError) -> (Integer | nil)
105
- def src_offset: (Integer) -> (Integer | nil)
106
- | (Prism::ParseError) -> (Integer | nil)
105
+ def line_offset: (Integer) -> (Integer | nil)
106
+ | (Node::BaseNode) -> (Integer | nil)
107
+ | (Node::BaseNode, Integer) -> (Integer | nil)
108
+ | (Prism::ParseError) -> (Integer | nil)
107
109
 
108
110
  # @rbs line_num: Integer
109
111
  # @rbs return: Integer | nil
110
- def src_offset__overload0: (Integer line_num) -> (Integer | nil)
112
+ def line_offset__overload0: (Integer line_num) -> (Integer | nil)
113
+
114
+ # @rbs node: Node::BaseNode
115
+ # @rbs return: Integer | nil
116
+ def line_offset__overload1: (Node::BaseNode node) -> (Integer | nil)
117
+
118
+ # @rbs node: Node::BaseNode
119
+ # @rbs line_offset: Integer
120
+ # @rbs return: Integer | nil
121
+ def line_offset__overload2: (Node::BaseNode node, Integer line_offset) -> (Integer | nil)
111
122
 
112
123
  # @rbs parse_error: Prism::ParseError
113
124
  # @rbs return: Integer | nil
114
- def src_offset__overload1: (Prism::ParseError parse_error) -> (Integer | nil)
125
+ def line_offset__overload3: (Prism::ParseError parse_error) -> (Integer | nil)
126
+
127
+ # @rbs (Integer) -> String
128
+ # | (Node::BaseNode) -> String
129
+ def line_indent: (Integer) -> String
130
+ | (Node::BaseNode) -> String
131
+
132
+ # @rbs line_num: Integer
133
+ # @rbs return: String
134
+ def line_indent__overload0: (Integer line_num) -> String
135
+
136
+ # @rbs node: Node::BaseNode
137
+ # @rbs return: String
138
+ def line_indent__overload1: (Node::BaseNode node) -> String
115
139
 
116
140
  # @rbs return: void
117
141
  def perform_corrector: () -> void
@@ -16,6 +16,8 @@ module RubyModKit
16
16
 
17
17
  @visibility: nil | Symbol
18
18
 
19
+ @separator: String
20
+
19
21
  attr_reader type: nil | String
20
22
 
21
23
  attr_reader attr_kind: nil | Symbol
@@ -26,6 +28,8 @@ module RubyModKit
26
28
 
27
29
  attr_accessor visibility: nil | Symbol
28
30
 
31
+ attr_accessor separator: String
32
+
29
33
  # @rbs name: Symbol
30
34
  # @rbs return: void
31
35
  def initialize: (Symbol name) -> void
@@ -8,13 +8,17 @@ module RubyModKit
8
8
 
9
9
  @ivar_parameter: bool
10
10
 
11
- @qualifier: String
11
+ @qualifier: String | nil
12
+
13
+ @name: Symbol
12
14
 
13
15
  attr_reader type: String
14
16
 
15
17
  attr_accessor ivar_parameter: bool
16
18
 
17
- attr_accessor qualifier: String
19
+ attr_accessor qualifier: String | nil
20
+
21
+ attr_accessor name: Symbol
18
22
 
19
23
  UNTYPED: ::String
20
24
 
@@ -46,5 +46,9 @@ module RubyModKit
46
46
  # @rbs node: Node::BaseNode
47
47
  # @rbs return: Memo::ParameterMemo
48
48
  def parameter_memo: (Node::BaseNode node) -> Memo::ParameterMemo
49
+
50
+ # @rbs &block: (Memo::ParameterMemo) -> void
51
+ # @rbs return: void
52
+ def each_parameter_memo: () { (Memo::ParameterMemo) -> void } -> void
49
53
  end
50
54
  end
@@ -6,9 +6,5 @@ module RubyModKit
6
6
  # @rbs _generation: Generation
7
7
  # @rbs return: void
8
8
  def perform: (untyped _generation) -> void
9
-
10
- # @rbs offset_diff: OffsetDiff
11
- # @rbs return: void
12
- def succ: (OffsetDiff offset_diff) -> void
13
9
  end
14
10
  end
@@ -51,8 +51,9 @@ module RubyModKit
51
51
  def parameter_node_at: (Integer offset) -> (Node::ParameterNode | nil)
52
52
 
53
53
  # @rbs offset: Integer
54
+ # @rbs allowed: Array[Class] | nil
54
55
  # @rbs return: Node::DefParentNode | nil
55
- def def_parent_node_at: (Integer offset) -> (Node::DefParentNode | nil)
56
+ def def_parent_node_at: (Integer offset, ?allowed: Array[Class] | nil) -> (Node::DefParentNode | nil)
56
57
 
57
58
  # @rbs offset: Integer
58
59
  # @rbs return: bool
@@ -61,6 +62,9 @@ module RubyModKit
61
62
  # @rbs return: Integer
62
63
  def offset: () -> Integer
63
64
 
65
+ # @rbs return: String
66
+ def slice: () -> String
67
+
64
68
  # @rbs return: String
65
69
  def inspect: () -> String
66
70
 
@@ -0,0 +1,26 @@
1
+ # Generated from lib/ruby_mod_kit/node/begin_node.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ module Node
5
+ # Transpiler program node
6
+ class BeginNode < Node::BaseNode
7
+ @prism_node: Prism::BeginNode
8
+
9
+ @parent: Node::BaseNode
10
+
11
+ @prev: Node::BaseNode | nil
12
+
13
+ attr_reader prism_node: Prism::BeginNode
14
+
15
+ attr_reader parent: Node::BaseNode
16
+
17
+ attr_reader prev: Node::BaseNode | nil
18
+
19
+ # @rbs prism_node: Prism::BeginNode
20
+ # @rbs parent: Node::BaseNode
21
+ # @rbs prev: Node::BaseNode | nil
22
+ # @rbs return: void
23
+ def initialize: (Prism::BeginNode prism_node, parent: Node::BaseNode, ?prev: Node::BaseNode | nil) -> void
24
+ end
25
+ end
26
+ end
@@ -10,7 +10,7 @@ module RubyModKit
10
10
 
11
11
  @prev: Node::BaseNode | nil
12
12
 
13
- type prism_node = Prism::RequiredParameterNode | Prism::OptionalKeywordParameterNode | Prism::OptionalParameterNode | Prism::RequiredKeywordParameterNode | Prism::RestParameterNode
13
+ type prism_node = Prism::RequiredParameterNode | Prism::OptionalKeywordParameterNode | Prism::OptionalParameterNode | Prism::RequiredKeywordParameterNode | Prism::RestParameterNode | Prism::BlockParameterNode
14
14
 
15
15
  attr_reader prism_node: prism_node
16
16