ruby_mod_kit 0.0.1 → 0.0.3

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 (117) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -8
  3. data/lib/ruby_mod_kit/cli.rb +10 -1
  4. data/lib/ruby_mod_kit/core_ext/eval.rb +36 -0
  5. data/lib/ruby_mod_kit/core_ext/load.rb +74 -0
  6. data/lib/ruby_mod_kit/core_ext.rb +7 -0
  7. data/lib/ruby_mod_kit/corrector.rb +22 -0
  8. data/lib/ruby_mod_kit/corrector_manager.rb +68 -0
  9. data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb +42 -0
  10. data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb +49 -0
  11. data/lib/ruby_mod_kit/feature/instance_variable_parameter.rb +27 -0
  12. data/lib/ruby_mod_kit/feature/overload/overload_mission.rb +80 -0
  13. data/lib/ruby_mod_kit/feature/overload.rb +19 -0
  14. data/lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb +49 -0
  15. data/lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb +90 -0
  16. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rb +41 -0
  17. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb +31 -0
  18. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rb +43 -0
  19. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rb +38 -0
  20. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rb +32 -0
  21. data/lib/ruby_mod_kit/feature/type/rbs_inline.rb +29 -0
  22. data/lib/ruby_mod_kit/feature/type/return_value_colon_corrector.rb +45 -0
  23. data/lib/ruby_mod_kit/feature/type/type_attr_mission.rb +67 -0
  24. data/lib/ruby_mod_kit/feature/type.rb +31 -0
  25. data/lib/ruby_mod_kit/feature.rb +24 -0
  26. data/lib/ruby_mod_kit/generation.rb +60 -22
  27. data/lib/ruby_mod_kit/memo/def_parent_memo.rb +36 -0
  28. data/lib/ruby_mod_kit/memo/{ivar.rb → ivar_memo.rb} +17 -3
  29. data/lib/ruby_mod_kit/memo/{method.rb → method_memo.rb} +7 -7
  30. data/lib/ruby_mod_kit/memo/offset_memo.rb +1 -1
  31. data/lib/ruby_mod_kit/memo/overload_memo.rb +46 -0
  32. data/lib/ruby_mod_kit/memo/{parameter.rb → parameter_memo.rb} +3 -3
  33. data/lib/ruby_mod_kit/memo.rb +7 -64
  34. data/lib/ruby_mod_kit/memo_pad.rb +69 -0
  35. data/lib/ruby_mod_kit/mission.rb +5 -24
  36. data/lib/ruby_mod_kit/node/base_node.rb +137 -0
  37. data/lib/ruby_mod_kit/node/call_node.rb +10 -6
  38. data/lib/ruby_mod_kit/node/def_node.rb +10 -6
  39. data/lib/ruby_mod_kit/node/def_parent_node.rb +41 -0
  40. data/lib/ruby_mod_kit/node/parameter_node.rb +12 -8
  41. data/lib/ruby_mod_kit/node/program_node.rb +2 -2
  42. data/lib/ruby_mod_kit/node/statements_node.rb +10 -6
  43. data/lib/ruby_mod_kit/node/symbol_node.rb +10 -6
  44. data/lib/ruby_mod_kit/node/untyped_node.rb +10 -6
  45. data/lib/ruby_mod_kit/node/wrap.rb +43 -0
  46. data/lib/ruby_mod_kit/node.rb +5 -149
  47. data/lib/ruby_mod_kit/offset_diff.rb +12 -6
  48. data/lib/ruby_mod_kit/version.rb +1 -1
  49. data/lib/ruby_mod_kit.rb +43 -11
  50. data/ruby_mod_kit.gemspec +1 -6
  51. data/sig/generated/ruby_mod_kit/core_ext/eval.rbs +17 -0
  52. data/sig/generated/ruby_mod_kit/core_ext/load.rbs +33 -0
  53. data/sig/generated/ruby_mod_kit/corrector.rbs +16 -0
  54. data/sig/generated/ruby_mod_kit/corrector_manager.rbs +26 -0
  55. data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rbs +20 -0
  56. data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rbs +21 -0
  57. data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter.rbs +14 -0
  58. data/sig/generated/ruby_mod_kit/feature/overload/overload_mission.rbs +24 -0
  59. data/sig/generated/ruby_mod_kit/feature/overload.rbs +11 -0
  60. data/sig/generated/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rbs +20 -0
  61. data/sig/generated/ruby_mod_kit/feature/type/parameter_arrow_corrector.rbs +39 -0
  62. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rbs +19 -0
  63. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rbs +19 -0
  64. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rbs +19 -0
  65. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rbs +19 -0
  66. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rbs +19 -0
  67. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline.rbs +13 -0
  68. data/sig/generated/ruby_mod_kit/feature/type/return_value_colon_corrector.rbs +20 -0
  69. data/sig/generated/ruby_mod_kit/feature/type/type_attr_mission.rbs +20 -0
  70. data/sig/generated/ruby_mod_kit/feature/type.rbs +14 -0
  71. data/sig/generated/ruby_mod_kit/feature.rbs +16 -0
  72. data/sig/generated/ruby_mod_kit/generation.rbs +25 -10
  73. data/sig/generated/ruby_mod_kit/memo/def_parent_memo.rbs +24 -0
  74. data/sig/generated/ruby_mod_kit/memo/{ivar.rbs → ivar_memo.rbs} +15 -3
  75. data/sig/generated/ruby_mod_kit/memo/{method.rbs → method_memo.rbs} +8 -8
  76. data/sig/generated/ruby_mod_kit/memo/offset_memo.rbs +1 -1
  77. data/sig/generated/ruby_mod_kit/memo/overload_memo.rbs +32 -0
  78. data/sig/generated/ruby_mod_kit/memo/{parameter.rbs → parameter_memo.rbs} +3 -3
  79. data/sig/generated/ruby_mod_kit/memo.rbs +2 -36
  80. data/sig/generated/ruby_mod_kit/memo_pad.rbs +46 -0
  81. data/sig/generated/ruby_mod_kit/mission.rbs +4 -12
  82. data/sig/generated/ruby_mod_kit/node/base_node.rbs +65 -0
  83. data/sig/generated/ruby_mod_kit/node/call_node.rbs +11 -6
  84. data/sig/generated/ruby_mod_kit/node/def_node.rbs +11 -6
  85. data/sig/generated/ruby_mod_kit/node/def_parent_node.rbs +31 -0
  86. data/sig/generated/ruby_mod_kit/node/parameter_node.rbs +13 -8
  87. data/sig/generated/ruby_mod_kit/node/program_node.rbs +2 -2
  88. data/sig/generated/ruby_mod_kit/node/statements_node.rbs +11 -6
  89. data/sig/generated/ruby_mod_kit/node/symbol_node.rbs +11 -6
  90. data/sig/generated/ruby_mod_kit/node/untyped_node.rbs +11 -6
  91. data/sig/generated/ruby_mod_kit/node/wrap.rbs +12 -0
  92. data/sig/generated/ruby_mod_kit/node.rbs +2 -58
  93. data/sig/generated/ruby_mod_kit/offset_diff.rbs +3 -1
  94. data/sig/generated/ruby_mod_kit.rbs +13 -2
  95. data/sig/thor.rbs +2 -0
  96. metadata +63 -43
  97. data/lib/ruby_mod_kit/memo/class.rb +0 -27
  98. data/lib/ruby_mod_kit/mission/fix_parse_error.rb +0 -213
  99. data/lib/ruby_mod_kit/mission/ivar_arg.rb +0 -42
  100. data/lib/ruby_mod_kit/mission/overload.rb +0 -73
  101. data/lib/ruby_mod_kit/mission/type_attr.rb +0 -75
  102. data/lib/ruby_mod_kit/mission/type_parameter.rb +0 -39
  103. data/lib/ruby_mod_kit/mission/type_return.rb +0 -33
  104. data/lib/ruby_mod_kit/node/class_node.rb +0 -37
  105. data/lib/ruby_mod_kit/transpiler.rb +0 -20
  106. data/sig/generated/examples/user.rbs +0 -60
  107. data/sig/generated/ruby_mod_kit/memo/class.rbs +0 -20
  108. data/sig/generated/ruby_mod_kit/memo/located.rbs +0 -14
  109. data/sig/generated/ruby_mod_kit/memo/parameter_type.rbs +0 -14
  110. data/sig/generated/ruby_mod_kit/mission/fix_parse_error.rbs +0 -73
  111. data/sig/generated/ruby_mod_kit/mission/ivar_arg.rbs +0 -19
  112. data/sig/generated/ruby_mod_kit/mission/overload.rbs +0 -20
  113. data/sig/generated/ruby_mod_kit/mission/type_attr.rbs +0 -18
  114. data/sig/generated/ruby_mod_kit/mission/type_parameter.rbs +0 -18
  115. data/sig/generated/ruby_mod_kit/mission/type_return.rbs +0 -18
  116. data/sig/generated/ruby_mod_kit/node/class_node.rbs +0 -29
  117. data/sig/generated/ruby_mod_kit/transpiler.rbs +0 -11
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rbs_inline: enabled
4
+
5
+ require_relative "call_node"
6
+ require_relative "def_node"
7
+ require_relative "def_parent_node"
8
+ require_relative "parameter_node"
9
+ require_relative "statements_node"
10
+ require_relative "symbol_node"
11
+ require_relative "untyped_node"
12
+
13
+ module RubyModKit
14
+ # The namespace of transpile node.
15
+ module Node
16
+ class << self
17
+ # @rbs prism_node: Prism::Node
18
+ # @rbs parent: Node::BaseNode
19
+ # @rbs prev: Node::BaseNode | nil
20
+ # @rbs return: Node::BaseNode
21
+ def wrap(prism_node, parent:, prev: nil)
22
+ case prism_node
23
+ when Prism::CallNode
24
+ Node::CallNode.new(prism_node, parent: parent, prev: prev)
25
+ when Prism::DefNode
26
+ Node::DefNode.new(prism_node, parent: parent, prev: prev)
27
+ when Prism::ClassNode, Prism::ModuleNode
28
+ Node::DefParentNode.new(prism_node, parent: parent, prev: prev)
29
+ when Prism::RequiredParameterNode, Prism::OptionalKeywordParameterNode,
30
+ Prism::OptionalParameterNode, Prism::RequiredKeywordParameterNode,
31
+ Prism::RestParameterNode
32
+ Node::ParameterNode.new(prism_node, parent: parent, prev: prev)
33
+ when Prism::StatementsNode
34
+ Node::StatementsNode.new(prism_node, parent: parent, prev: prev)
35
+ when Prism::SymbolNode
36
+ Node::SymbolNode.new(prism_node, parent: parent, prev: prev)
37
+ else
38
+ Node::UntypedNode.new(prism_node, parent: parent, prev: prev)
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -3,162 +3,18 @@
3
3
  # rbs_inline: enabled
4
4
 
5
5
  module RubyModKit
6
- # The class of transpile node.
7
- class Node
8
- # @rbs @location: Prism::Location
9
- # @rbs @children: Array[Node]
10
- # @rbs @ancestors: Array[Node]
11
-
12
- attr_reader :location #: Prism::Location
13
-
14
- # @rbs return: void
15
- def initialize
16
- @location = prism_node.location
17
- end
18
-
19
- # @rbs return: Array[Node]
20
- def children
21
- return @children if @children
22
-
23
- @children = prism_node.child_nodes.compact.map do |prism_child_node|
24
- wrap(prism_child_node)
25
- end
26
- end
27
-
28
- # @rbs prism_node: Prism::Node
29
- # @rbs return: Node
30
- def wrap(prism_node)
31
- case prism_node
32
- when Prism::SymbolNode
33
- Node::SymbolNode.new(prism_node, parent: self)
34
- when Prism::ClassNode
35
- Node::ClassNode.new(prism_node, parent: self)
36
- when Prism::DefNode
37
- Node::DefNode.new(prism_node, parent: self)
38
- when Prism::RequiredParameterNode, Prism::OptionalKeywordParameterNode,
39
- Prism::OptionalParameterNode, Prism::RequiredKeywordParameterNode,
40
- Prism::RestParameterNode
41
- Node::ParameterNode.new(prism_node, parent: self)
42
- when Prism::StatementsNode
43
- Node::StatementsNode.new(prism_node, parent: self)
44
- when Prism::CallNode
45
- Node::CallNode.new(prism_node, parent: self)
46
- else
47
- Node::UntypedNode.new(prism_node, parent: self)
48
- end
49
- end
50
-
51
- # @rbs return: Array[Node]
52
- def ancestors
53
- return @ancestors if @ancestors
54
-
55
- parent = @parent
56
- @ancestors = if parent
57
- [parent] + parent.ancestors
58
- else
59
- []
60
- end
61
- end
62
-
63
- # @rbs return: Symbol
64
- def name
65
- raise(RubyModKit::Error, "Expected ParameterNode but #{self.class}:#{prism_node.inspect}")
66
- end
67
-
68
- # @rbs offset: Integer
69
- # @rbs return: Node | nil
70
- def node_at(offset)
71
- return nil unless include?(offset)
72
-
73
- child = children.find { _1.include?(offset) }
74
- child&.node_at(offset) || self
75
- end
76
-
77
- # @rbs offset: Integer
78
- # @rbs return: Node::StatementsNode | nil
79
- def statements_node_at(offset)
80
- node = node_at(offset) || return
81
- [node, *node.ancestors].each { return _1 if _1.is_a?(Node::StatementsNode) }
82
- nil
83
- end
84
-
85
- # @rbs offset: Integer
86
- # @rbs return: Node::DefNode | nil
87
- def def_node_at(offset)
88
- node = node_at(offset) || return
89
- [node, *node.ancestors].each { return _1 if _1.is_a?(Node::DefNode) }
90
- nil
91
- end
92
-
93
- # @rbs offset: Integer
94
- # @rbs return: Node::ParameterNode | nil
95
- def parameter_node_at(offset)
96
- node = node_at(offset) || return
97
- [node, *node.ancestors].each { return _1 if _1.is_a?(Node::ParameterNode) }
98
- nil
99
- end
100
-
101
- # @rbs offset: Integer
102
- # @rbs return: Node::ClassNode | nil
103
- def class_node_at(offset)
104
- node = node_at(offset) || return
105
- [node, *node.ancestors].each { return _1 if _1.is_a?(Node::ClassNode) }
106
- nil
107
- end
108
-
109
- # @rbs offset: Integer
110
- # @rbs return: bool
111
- def include?(offset)
112
- self.offset <= offset && offset <= prism_node.location.end_offset
113
- end
114
-
115
- # @rbs return: Prism::Node & Prism::_Node
116
- def prism_node
117
- raise RubyModKit::Error
118
- end
119
-
120
- # @rbs return: Integer
121
- def offset
122
- location.start_offset
123
- end
124
-
125
- # @rbs return: String
126
- def inspect
127
- str = +"#<#{self.class} "
128
- first = true
129
- instance_variables.each do |ivar_name|
130
- case ivar_name
131
- when :@children, :@ancestors, :@parent
132
- next
133
- end
134
-
135
- if first
136
- first = false
137
- else
138
- str << ", "
139
- end
140
- str << "#{ivar_name}="
141
- value = instance_variable_get(ivar_name)
142
- str << (
143
- case value
144
- when Prism::Node
145
- "#<#{value.class} location=#{value.location.inspect}>"
146
- else
147
- value.inspect
148
- end
149
- )
150
- end
151
- str << ">"
152
- str
153
- end
6
+ # The namespace of transpile node.
7
+ module Node
154
8
  end
155
9
  end
156
10
 
11
+ require_relative "node/base_node"
157
12
  require_relative "node/symbol_node"
158
- require_relative "node/class_node"
13
+ require_relative "node/def_parent_node"
159
14
  require_relative "node/call_node"
160
15
  require_relative "node/def_node"
161
16
  require_relative "node/parameter_node"
162
17
  require_relative "node/program_node"
163
18
  require_relative "node/statements_node"
164
19
  require_relative "node/untyped_node"
20
+ require_relative "node/wrap"
@@ -2,23 +2,24 @@
2
2
 
3
3
  # rbs_inline: enabled
4
4
 
5
- require "sorted_set"
6
-
7
5
  module RubyModKit
8
6
  # The class of offset differences.
9
7
  class OffsetDiff
10
- # @rbs @diffs: SortedSet[[Integer, Integer, Integer]]
8
+ # @rbs @diffs: Hash[Integer, Integer]
9
+ # @rbs @offsets: Array[Integer]
11
10
 
12
11
  # @rbs return: void
13
12
  def initialize
14
- @diffs = SortedSet.new
13
+ @diffs = {}
14
+ @offsets = []
15
15
  end
16
16
 
17
17
  # @rbs src_offset: Integer
18
18
  # @rbs return: Integer
19
19
  def [](src_offset)
20
20
  dst_offset = src_offset
21
- @diffs.each do |(offset, _, diff)|
21
+ @offsets.each do |offset|
22
+ diff = @diffs[offset]
22
23
  break if offset > src_offset
23
24
  break if offset == src_offset && diff < 0
24
25
 
@@ -31,7 +32,12 @@ module RubyModKit
31
32
  # @rbs new_diff: Integer
32
33
  # @rbs return: void
33
34
  def insert(src_offset, new_diff)
34
- @diffs << [src_offset, @diffs.size, new_diff]
35
+ if @diffs[src_offset]
36
+ @diffs[src_offset] += new_diff
37
+ else
38
+ @diffs[src_offset] = new_diff
39
+ @offsets.insert(@offsets.bsearch_index { _1 > src_offset } || -1, src_offset)
40
+ end
35
41
  end
36
42
  end
37
43
  end
@@ -3,5 +3,5 @@
3
3
  # rbs_inline: enabled
4
4
 
5
5
  module RubyModKit
6
- VERSION = "0.0.1" #: String
6
+ VERSION = "0.0.3" #: String
7
7
  end
data/lib/ruby_mod_kit.rb CHANGED
@@ -13,26 +13,36 @@ module RubyModKit
13
13
  class << self
14
14
  # @rbs file: String
15
15
  # @rbs *args: String
16
+ # @rbs output: String | nil
16
17
  # @rbs return: void
17
- def execute_file(file, *args)
18
- rb_file = transpile_file(file)
19
- execute_rb_file(rb_file, *args)
18
+ def execute_file(file, *args, output: nil)
19
+ rb_script = transpile_file(file, output: output)
20
+ if output
21
+ execute_rb_file(output, *args)
22
+ else
23
+ execute_rb(rb_script, *args)
24
+ end
20
25
  end
21
26
 
22
27
  # @rbs file: String
28
+ # @rbs output: String | IO | nil
23
29
  # @rbs return: String
24
- def transpile_file(file)
25
- rb_src = transpile(File.read(file), filename: file)
26
- rb_path = rb_path(file)
27
- File.write(rb_path, rb_src)
28
- rb_path
30
+ def transpile_file(file, output: nil)
31
+ rb_script = transpile(File.read(file), filename: file)
32
+ case output
33
+ when IO
34
+ output.write(rb_script)
35
+ when String
36
+ File.write(output, rb_script)
37
+ end
38
+ rb_script
29
39
  end
30
40
 
31
41
  # @rbs src: String
32
42
  # @rbs filename: String | nil
33
43
  # @rbs return: String
34
44
  def transpile(src, filename: nil)
35
- Transpiler.new.transpile(src, filename: filename)
45
+ Generation.resolve(src, filename: filename).script
36
46
  end
37
47
 
38
48
  # @rbs file: String
@@ -47,13 +57,35 @@ module RubyModKit
47
57
  def rb_path(path)
48
58
  path.sub(/(?:\.rbm)?$/, ".rb")
49
59
  end
60
+
61
+ # @rbs rb_script: String
62
+ # @rbs *args: String
63
+ # @rbs return: void
64
+ def execute_rb(rb_script, *args)
65
+ ARGV.replace(args)
66
+ eval(rb_script, TOPLEVEL_BINDING) # rubocop:disable Security/Eval
67
+ end
68
+
69
+ # @rbs type: String
70
+ # @rbs return: String
71
+ def unify_type(type)
72
+ type[/\A\(([^()]*)\)\z/, 1] || type
73
+ end
50
74
  end
51
75
  end
52
76
 
53
77
  require_relative "ruby_mod_kit/version"
54
- require_relative "ruby_mod_kit/transpiler"
78
+ require_relative "ruby_mod_kit/corrector"
79
+ require_relative "ruby_mod_kit/corrector_manager"
80
+ require_relative "ruby_mod_kit/feature"
55
81
  require_relative "ruby_mod_kit/generation"
56
82
  require_relative "ruby_mod_kit/memo"
57
- require_relative "ruby_mod_kit/node"
83
+ require_relative "ruby_mod_kit/memo_pad"
58
84
  require_relative "ruby_mod_kit/mission"
85
+ require_relative "ruby_mod_kit/node"
59
86
  require_relative "ruby_mod_kit/offset_diff"
87
+
88
+ require_relative "ruby_mod_kit/feature/instance_variable_parameter"
89
+ require_relative "ruby_mod_kit/feature/overload"
90
+ require_relative "ruby_mod_kit/feature/type"
91
+ require_relative "ruby_mod_kit/feature/type/rbs_inline"
data/ruby_mod_kit.gemspec CHANGED
@@ -4,14 +4,10 @@ require_relative "lib/ruby_mod_kit/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "ruby_mod_kit"
7
+ spec.version = RubyModKit::VERSION
7
8
  spec.authors = ["wanabe"]
8
9
  spec.email = ["s.wanabe@gmail.com"]
9
10
 
10
- version = RubyModKit::VERSION
11
- tag_version = `git tag --points-at HEAD`.chomp.sub("v", "")
12
- version += "-#{`git rev-parse --short HEAD`}" if version != tag_version
13
- spec.version = version
14
-
15
11
  spec.summary = "ruby_mod_kit"
16
12
  spec.description = "ruby_mod_kit"
17
13
  spec.homepage = "https://github.com/wanabe/ruby_mod_kit"
@@ -43,7 +39,6 @@ Gem::Specification.new do |spec|
43
39
 
44
40
  # Uncomment to register a new dependency of your gem
45
41
  spec.add_dependency "prism", "~> 1.0"
46
- spec.add_dependency "sorted_set", "~> 1.0"
47
42
  spec.add_dependency "thor", "~> 1.3"
48
43
 
49
44
  # For more information and examples about making a new gem, check out our
@@ -0,0 +1,17 @@
1
+ # Generated from lib/ruby_mod_kit/core_ext/eval.rb with RBS::Inline
2
+
3
+ # Define RubyMotKit.eval
4
+ module RubyModKit
5
+ module CoreExt
6
+ # the extension for eval
7
+ module Eval
8
+ # @rbs expr: String
9
+ # @rbs *rest: Object
10
+ # @rbs transpile: bool
11
+ # @rbs return: Object
12
+ def self?.eval: (String expr, *Object rest, ?transpile: bool) -> Object
13
+ end
14
+ end
15
+
16
+ include CoreExt::Eval
17
+ end
@@ -0,0 +1,33 @@
1
+ # Generated from lib/ruby_mod_kit/core_ext/load.rb with RBS::Inline
2
+
3
+ # Define RubyMotKit.load/require
4
+ module RubyModKit
5
+ module CoreExt
6
+ # the extension for load/require
7
+ module Load
8
+ LOADABLE_EXTS: Array[String]
9
+
10
+ # @rbs path: String
11
+ # @rbs wrap: bool
12
+ # @rbs return: bool
13
+ def self?.load: (String path, ?bool wrap) -> bool
14
+
15
+ # @rbs path: String
16
+ # @rbs return: bool
17
+ def self?.require: (String path) -> bool
18
+
19
+ # @rbs return: Array[String]
20
+ def self.loaded_features: () -> Array[String]
21
+
22
+ # @rbs return: Array[String]
23
+ def self.load_path: () -> Array[String]
24
+
25
+ # @rbs path: String
26
+ # @rbs expanded: bool
27
+ # @rbs return: String | nil
28
+ def self.require_path: (String path, ?expanded: bool) -> (String | nil)
29
+ end
30
+ end
31
+
32
+ include CoreExt::Load
33
+ end
@@ -0,0 +1,16 @@
1
+ # Generated from lib/ruby_mod_kit/corrector.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ # the base class of corrector
5
+ class Corrector
6
+ # @rbs return: Array[Symbol]
7
+ def correctable_error_types: () -> Array[Symbol]
8
+
9
+ # @rbs _parse_error: Prism::ParseError
10
+ # @rbs _generation: Generation
11
+ # @rbs _root_node: Node::ProgramNode
12
+ # @rbs _memo_pad: MemoPad
13
+ # @rbs return: void
14
+ def correct: (untyped _parse_error, untyped _generation, untyped _root_node, untyped _memo_pad) -> void
15
+ end
16
+ end
@@ -0,0 +1,26 @@
1
+ # Generated from lib/ruby_mod_kit/corrector_manager.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ # the class to manege parse error correctors
5
+ class CorrectorManager
6
+ @previous_error_messages: Array[String]
7
+
8
+ @correctors_error_map: Hash[Symbol, Array[Corrector]]
9
+
10
+ # @rbs features: Array[Feature]
11
+ # @rbs return: void
12
+ def initialize: (Array[Feature] features) -> void
13
+
14
+ # @rbs generation: Generation
15
+ # @rbs root_node: Node::ProgramNode
16
+ # @rbs parse_result: Prism::ParseResult
17
+ # @rbs memo_pad: MemoPad
18
+ # @rbs return: bool
19
+ def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
20
+
21
+ # @rbs generation: Generation
22
+ # @rbs parse_result: Prism::ParseResult
23
+ # @rbs return: void
24
+ def check_prev_errors: (Generation generation, Prism::ParseResult parse_result) -> void
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ # Generated from lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class InstanceVariableParameter
6
+ # the class to correct `def foo(@bar) ...` -> `def foo(bar) ...`
7
+ class InstanceVariableParameterCorrector < Corrector
8
+ # @rbs return: Array[Symbol]
9
+ def correctable_error_types: () -> Array[Symbol]
10
+
11
+ # @rbs parse_error: Prism::ParseError
12
+ # @rbs generation: Generation
13
+ # @rbs root_node: Node::ProgramNode
14
+ # @rbs memo_pad: MemoPad
15
+ # @rbs return: void
16
+ def correct: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ # Generated from lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class InstanceVariableParameter
6
+ # The mission for instance variable arguments
7
+ class InstanceVariableParameterMission < Mission
8
+ @assignment: String
9
+
10
+ attr_reader assignment: String
11
+
12
+ # @rbs generation: Generation
13
+ # @rbs root_node: Node::ProgramNode
14
+ # @rbs _parse_result: Prism::ParseResult
15
+ # @rbs memo_pad: MemoPad
16
+ # @rbs return: bool
17
+ def perform: (Generation generation, Node::ProgramNode root_node, untyped _parse_result, MemoPad memo_pad) -> bool
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # Generated from lib/ruby_mod_kit/feature/instance_variable_parameter.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ # namespace for instance_variable parameter feature
6
+ class InstanceVariableParameter < Feature
7
+ # @rbs return: Array[Corrector]
8
+ def create_correctors: () -> Array[Corrector]
9
+
10
+ # @rbs return: Array[Mission]
11
+ def create_missions: () -> Array[Mission]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,24 @@
1
+ # Generated from lib/ruby_mod_kit/feature/overload/overload_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Overload
6
+ # The mission for overload
7
+ class OverloadMission < Mission
8
+ @modified: bool
9
+
10
+ OVERLOAD_METHOD_MAP: Hash[Symbol, String]
11
+
12
+ # @rbs return: void
13
+ def initialize: () -> void
14
+
15
+ # @rbs generation: Generation
16
+ # @rbs root_node: Node::ProgramNode
17
+ # @rbs parse_result: Prism::ParseResult
18
+ # @rbs memo_pad: MemoPad
19
+ # @rbs return: bool
20
+ def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,11 @@
1
+ # Generated from lib/ruby_mod_kit/feature/overload.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ # namespace for overload feature
6
+ class Overload < Feature
7
+ # @rbs return: Array[Mission]
8
+ def create_missions: () -> Array[Mission]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ # the class to correct `@var: Type` -> `# @rbs @var: Type`
7
+ class InstanceVariableColonCorrector < Corrector
8
+ # @rbs return: Array[Symbol]
9
+ def correctable_error_types: () -> Array[Symbol]
10
+
11
+ # @rbs parse_error: Prism::ParseError
12
+ # @rbs generation: Generation
13
+ # @rbs root_node: Node::ProgramNode
14
+ # @rbs memo_pad: MemoPad
15
+ # @rbs return: void
16
+ def correct: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,39 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ # the class to correct `def foo(Bar => bar, *Buz => buz)` -> `def foo(bar, *buz)`
7
+ class ParameterArrowCorrector < Corrector
8
+ # @rbs return: Array[Symbol]
9
+ def correctable_error_types: () -> Array[Symbol]
10
+
11
+ # @rbs parse_error: Prism::ParseError
12
+ # @rbs generation: Generation
13
+ # @rbs root_node: Node::ProgramNode
14
+ # @rbs memo_pad: MemoPad
15
+ # @rbs return: void
16
+ def correct: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
17
+
18
+ # @rbs parse_error: Prism::ParseError
19
+ # @rbs generation: Generation
20
+ # @rbs root_node: Node::ProgramNode
21
+ # @rbs memo_pad: MemoPad
22
+ # @rbs return: void
23
+ def remove_arrow_before_parameter: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
24
+
25
+ # @rbs parse_error: Prism::ParseError
26
+ # @rbs generation: Generation
27
+ # @rbs root_node: Node::ProgramNode
28
+ # @rbs memo_pad: MemoPad
29
+ # @rbs return: void
30
+ def remove_arrow_after_quailifier: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
31
+
32
+ # @rbs parse_error: Prism::ParseError
33
+ # @rbs generation: Generation
34
+ # @rbs return: void
35
+ def wrap_parameter_type_for_next_parse: (Prism::ParseError parse_error, Generation generation) -> void
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ class RbsInline
7
+ # The mission for parameter types
8
+ class TypeAttrMission < Mission
9
+ # @rbs generation: Generation
10
+ # @rbs root_node: Node::ProgramNode
11
+ # @rbs _parse_result: Prism::ParseResult
12
+ # @rbs memo_pad: MemoPad
13
+ # @rbs return: bool
14
+ def perform: (Generation generation, Node::ProgramNode root_node, untyped _parse_result, MemoPad memo_pad) -> bool
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ class RbsInline
7
+ # The mission for instance variable types
8
+ class TypeInstanceVariableMission < Mission
9
+ # @rbs generation: Generation
10
+ # @rbs root_node: Node::ProgramNode
11
+ # @rbs parse_result: Prism::ParseResult
12
+ # @rbs memo_pad: MemoPad
13
+ # @rbs return: bool
14
+ def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end