ruby_mod_kit 0.0.1 → 0.0.3

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