ruby_mod_kit 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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