ruby_mod_kit 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ruby_mod_kit/core_ext/eval.rb +6 -0
- data/lib/ruby_mod_kit/core_ext/load.rb +12 -4
- data/lib/ruby_mod_kit/core_ext.rb +2 -2
- data/lib/ruby_mod_kit/corrector.rb +22 -0
- data/lib/ruby_mod_kit/corrector_manager.rb +68 -0
- data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb +42 -0
- data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb +49 -0
- data/lib/ruby_mod_kit/feature/instance_variable_parameter.rb +27 -0
- data/lib/ruby_mod_kit/feature/overload/overload_mission.rb +80 -0
- data/lib/ruby_mod_kit/feature/overload.rb +19 -0
- data/lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb +49 -0
- data/lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb +90 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rb +41 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb +31 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rb +43 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rb +38 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rb +32 -0
- data/lib/ruby_mod_kit/feature/type/rbs_inline.rb +29 -0
- data/lib/ruby_mod_kit/feature/type/return_value_colon_corrector.rb +45 -0
- data/lib/ruby_mod_kit/feature/type/type_attr_mission.rb +67 -0
- data/lib/ruby_mod_kit/feature/type.rb +31 -0
- data/lib/ruby_mod_kit/feature.rb +24 -0
- data/lib/ruby_mod_kit/generation.rb +60 -22
- data/lib/ruby_mod_kit/memo/def_parent_memo.rb +36 -0
- data/lib/ruby_mod_kit/memo/{ivar.rb → ivar_memo.rb} +17 -3
- data/lib/ruby_mod_kit/memo/{method.rb → method_memo.rb} +7 -7
- data/lib/ruby_mod_kit/memo/offset_memo.rb +1 -1
- data/lib/ruby_mod_kit/memo/overload_memo.rb +46 -0
- data/lib/ruby_mod_kit/memo/{parameter.rb → parameter_memo.rb} +3 -3
- data/lib/ruby_mod_kit/memo.rb +7 -64
- data/lib/ruby_mod_kit/memo_pad.rb +69 -0
- data/lib/ruby_mod_kit/mission.rb +5 -24
- data/lib/ruby_mod_kit/node/base_node.rb +137 -0
- data/lib/ruby_mod_kit/node/call_node.rb +10 -6
- data/lib/ruby_mod_kit/node/def_node.rb +10 -6
- data/lib/ruby_mod_kit/node/def_parent_node.rb +17 -13
- data/lib/ruby_mod_kit/node/parameter_node.rb +12 -8
- data/lib/ruby_mod_kit/node/program_node.rb +2 -2
- data/lib/ruby_mod_kit/node/statements_node.rb +10 -6
- data/lib/ruby_mod_kit/node/symbol_node.rb +10 -6
- data/lib/ruby_mod_kit/node/untyped_node.rb +10 -6
- data/lib/ruby_mod_kit/node/wrap.rb +43 -0
- data/lib/ruby_mod_kit/node.rb +4 -148
- data/lib/ruby_mod_kit/version.rb +1 -1
- data/lib/ruby_mod_kit.rb +17 -3
- data/sig/generated/ruby_mod_kit/core_ext/eval.rbs +3 -0
- data/sig/generated/ruby_mod_kit/core_ext/load.rbs +7 -4
- data/sig/generated/ruby_mod_kit/corrector.rbs +16 -0
- data/sig/generated/ruby_mod_kit/corrector_manager.rbs +26 -0
- data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rbs +20 -0
- data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rbs +21 -0
- data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter.rbs +14 -0
- data/sig/generated/ruby_mod_kit/feature/overload/overload_mission.rbs +24 -0
- data/sig/generated/ruby_mod_kit/feature/overload.rbs +11 -0
- data/sig/generated/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rbs +20 -0
- data/sig/generated/ruby_mod_kit/feature/type/parameter_arrow_corrector.rbs +39 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rbs +19 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rbs +19 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rbs +19 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rbs +19 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rbs +19 -0
- data/sig/generated/ruby_mod_kit/feature/type/rbs_inline.rbs +13 -0
- data/sig/generated/ruby_mod_kit/feature/type/return_value_colon_corrector.rbs +20 -0
- data/sig/generated/ruby_mod_kit/feature/type/type_attr_mission.rbs +20 -0
- data/sig/generated/ruby_mod_kit/feature/type.rbs +14 -0
- data/sig/generated/ruby_mod_kit/feature.rbs +16 -0
- data/sig/generated/ruby_mod_kit/generation.rbs +25 -10
- data/sig/generated/ruby_mod_kit/memo/def_parent_memo.rbs +24 -0
- data/sig/generated/ruby_mod_kit/memo/{ivar.rbs → ivar_memo.rbs} +15 -3
- data/sig/generated/ruby_mod_kit/memo/{method.rbs → method_memo.rbs} +8 -8
- data/sig/generated/ruby_mod_kit/memo/offset_memo.rbs +1 -1
- data/sig/generated/ruby_mod_kit/memo/overload_memo.rbs +32 -0
- data/sig/generated/ruby_mod_kit/memo/{parameter.rbs → parameter_memo.rbs} +3 -3
- data/sig/generated/ruby_mod_kit/memo.rbs +2 -36
- data/sig/generated/ruby_mod_kit/memo_pad.rbs +46 -0
- data/sig/generated/ruby_mod_kit/mission.rbs +4 -12
- data/sig/generated/ruby_mod_kit/node/base_node.rbs +65 -0
- data/sig/generated/ruby_mod_kit/node/call_node.rbs +11 -6
- data/sig/generated/ruby_mod_kit/node/def_node.rbs +11 -6
- data/sig/generated/ruby_mod_kit/node/def_parent_node.rbs +12 -10
- data/sig/generated/ruby_mod_kit/node/parameter_node.rbs +13 -8
- data/sig/generated/ruby_mod_kit/node/program_node.rbs +2 -2
- data/sig/generated/ruby_mod_kit/node/statements_node.rbs +11 -6
- data/sig/generated/ruby_mod_kit/node/symbol_node.rbs +11 -6
- data/sig/generated/ruby_mod_kit/node/untyped_node.rbs +11 -6
- data/sig/generated/ruby_mod_kit/node/wrap.rbs +12 -0
- data/sig/generated/ruby_mod_kit/node.rbs +2 -58
- data/sig/generated/ruby_mod_kit.rbs +4 -0
- metadata +56 -27
- data/lib/ruby_mod_kit/memo/def_parent.rb +0 -27
- data/lib/ruby_mod_kit/mission/fix_parse_error.rb +0 -216
- data/lib/ruby_mod_kit/mission/ivar_arg.rb +0 -42
- data/lib/ruby_mod_kit/mission/overload.rb +0 -73
- data/lib/ruby_mod_kit/mission/type_attr.rb +0 -75
- data/lib/ruby_mod_kit/mission/type_parameter.rb +0 -39
- data/lib/ruby_mod_kit/mission/type_return.rb +0 -33
- data/lib/ruby_mod_kit/transpiler.rb +0 -20
- data/sig/generated/examples/user.rbs +0 -60
- data/sig/generated/ruby_mod_kit/memo/def_parent.rbs +0 -20
- data/sig/generated/ruby_mod_kit/memo/located.rbs +0 -14
- data/sig/generated/ruby_mod_kit/memo/parameter_type.rbs +0 -14
- data/sig/generated/ruby_mod_kit/mission/fix_parse_error.rbs +0 -73
- data/sig/generated/ruby_mod_kit/mission/ivar_arg.rbs +0 -19
- data/sig/generated/ruby_mod_kit/mission/overload.rbs +0 -20
- data/sig/generated/ruby_mod_kit/mission/type_attr.rbs +0 -18
- data/sig/generated/ruby_mod_kit/mission/type_parameter.rbs +0 -18
- data/sig/generated/ruby_mod_kit/mission/type_return.rbs +0 -18
- data/sig/generated/ruby_mod_kit/transpiler.rbs +0 -11
@@ -1,21 +1,26 @@
|
|
1
1
|
# Generated from lib/ruby_mod_kit/node/untyped_node.rb with RBS::Inline
|
2
2
|
|
3
3
|
module RubyModKit
|
4
|
-
|
4
|
+
module Node
|
5
5
|
# Transpiler program node
|
6
|
-
class UntypedNode < Node
|
6
|
+
class UntypedNode < Node::BaseNode
|
7
7
|
@prism_node: Prism::Node
|
8
8
|
|
9
|
-
@parent: Node
|
9
|
+
@parent: Node::BaseNode
|
10
|
+
|
11
|
+
@prev: Node::BaseNode | nil
|
10
12
|
|
11
13
|
attr_reader prism_node: Prism::Node
|
12
14
|
|
13
|
-
attr_reader parent: Node
|
15
|
+
attr_reader parent: Node::BaseNode
|
16
|
+
|
17
|
+
attr_reader prev: Node::BaseNode | nil
|
14
18
|
|
15
19
|
# @rbs prism_node: Prism::Node
|
16
|
-
# @rbs parent: Node
|
20
|
+
# @rbs parent: Node::BaseNode
|
21
|
+
# @rbs prev: Node::BaseNode | nil
|
17
22
|
# @rbs return: void
|
18
|
-
def initialize: (Prism::Node prism_node, parent: Node) -> void
|
23
|
+
def initialize: (Prism::Node prism_node, parent: Node::BaseNode, ?prev: Node::BaseNode | nil) -> void
|
19
24
|
end
|
20
25
|
end
|
21
26
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Generated from lib/ruby_mod_kit/node/wrap.rb with RBS::Inline
|
2
|
+
|
3
|
+
module RubyModKit
|
4
|
+
# The namespace of transpile node.
|
5
|
+
module Node
|
6
|
+
# @rbs prism_node: Prism::Node
|
7
|
+
# @rbs parent: Node::BaseNode
|
8
|
+
# @rbs prev: Node::BaseNode | nil
|
9
|
+
# @rbs return: Node::BaseNode
|
10
|
+
def self.wrap: (Prism::Node prism_node, parent: Node::BaseNode, ?prev: Node::BaseNode | nil) -> Node::BaseNode
|
11
|
+
end
|
12
|
+
end
|
@@ -1,63 +1,7 @@
|
|
1
1
|
# Generated from lib/ruby_mod_kit/node.rb with RBS::Inline
|
2
2
|
|
3
3
|
module RubyModKit
|
4
|
-
# The
|
5
|
-
|
6
|
-
@location: Prism::Location
|
7
|
-
|
8
|
-
@children: Array[Node]
|
9
|
-
|
10
|
-
@ancestors: Array[Node]
|
11
|
-
|
12
|
-
attr_reader location: Prism::Location
|
13
|
-
|
14
|
-
# @rbs return: void
|
15
|
-
def initialize: () -> void
|
16
|
-
|
17
|
-
# @rbs return: Array[Node]
|
18
|
-
def children: () -> Array[Node]
|
19
|
-
|
20
|
-
# @rbs prism_node: Prism::Node
|
21
|
-
# @rbs return: Node
|
22
|
-
def wrap: (Prism::Node prism_node) -> Node
|
23
|
-
|
24
|
-
# @rbs return: Array[Node]
|
25
|
-
def ancestors: () -> Array[Node]
|
26
|
-
|
27
|
-
# @rbs return: Symbol
|
28
|
-
def name: () -> Symbol
|
29
|
-
|
30
|
-
# @rbs offset: Integer
|
31
|
-
# @rbs return: Node | nil
|
32
|
-
def node_at: (Integer offset) -> (Node | nil)
|
33
|
-
|
34
|
-
# @rbs offset: Integer
|
35
|
-
# @rbs return: Node::StatementsNode | nil
|
36
|
-
def statements_node_at: (Integer offset) -> (Node::StatementsNode | nil)
|
37
|
-
|
38
|
-
# @rbs offset: Integer
|
39
|
-
# @rbs return: Node::DefNode | nil
|
40
|
-
def def_node_at: (Integer offset) -> (Node::DefNode | nil)
|
41
|
-
|
42
|
-
# @rbs offset: Integer
|
43
|
-
# @rbs return: Node::ParameterNode | nil
|
44
|
-
def parameter_node_at: (Integer offset) -> (Node::ParameterNode | nil)
|
45
|
-
|
46
|
-
# @rbs offset: Integer
|
47
|
-
# @rbs return: Node::DefParentNode | nil
|
48
|
-
def def_parent_node_at: (Integer offset) -> (Node::DefParentNode | nil)
|
49
|
-
|
50
|
-
# @rbs offset: Integer
|
51
|
-
# @rbs return: bool
|
52
|
-
def include?: (Integer offset) -> bool
|
53
|
-
|
54
|
-
# @rbs return: Prism::Node & Prism::_Node
|
55
|
-
def prism_node: () -> (Prism::Node & Prism::_Node)
|
56
|
-
|
57
|
-
# @rbs return: Integer
|
58
|
-
def offset: () -> Integer
|
59
|
-
|
60
|
-
# @rbs return: String
|
61
|
-
def inspect: () -> String
|
4
|
+
# The namespace of transpile node.
|
5
|
+
module Node
|
62
6
|
end
|
63
7
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_mod_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- wanabe
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prism
|
@@ -56,21 +56,37 @@ files:
|
|
56
56
|
- lib/ruby_mod_kit/core_ext.rb
|
57
57
|
- lib/ruby_mod_kit/core_ext/eval.rb
|
58
58
|
- lib/ruby_mod_kit/core_ext/load.rb
|
59
|
+
- lib/ruby_mod_kit/corrector.rb
|
60
|
+
- lib/ruby_mod_kit/corrector_manager.rb
|
61
|
+
- lib/ruby_mod_kit/feature.rb
|
62
|
+
- lib/ruby_mod_kit/feature/instance_variable_parameter.rb
|
63
|
+
- lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb
|
64
|
+
- lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb
|
65
|
+
- lib/ruby_mod_kit/feature/overload.rb
|
66
|
+
- lib/ruby_mod_kit/feature/overload/overload_mission.rb
|
67
|
+
- lib/ruby_mod_kit/feature/type.rb
|
68
|
+
- lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb
|
69
|
+
- lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb
|
70
|
+
- lib/ruby_mod_kit/feature/type/rbs_inline.rb
|
71
|
+
- lib/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rb
|
72
|
+
- lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb
|
73
|
+
- lib/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rb
|
74
|
+
- lib/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rb
|
75
|
+
- lib/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rb
|
76
|
+
- lib/ruby_mod_kit/feature/type/return_value_colon_corrector.rb
|
77
|
+
- lib/ruby_mod_kit/feature/type/type_attr_mission.rb
|
59
78
|
- lib/ruby_mod_kit/generation.rb
|
60
79
|
- lib/ruby_mod_kit/memo.rb
|
61
|
-
- lib/ruby_mod_kit/memo/
|
62
|
-
- lib/ruby_mod_kit/memo/
|
63
|
-
- lib/ruby_mod_kit/memo/
|
80
|
+
- lib/ruby_mod_kit/memo/def_parent_memo.rb
|
81
|
+
- lib/ruby_mod_kit/memo/ivar_memo.rb
|
82
|
+
- lib/ruby_mod_kit/memo/method_memo.rb
|
64
83
|
- lib/ruby_mod_kit/memo/offset_memo.rb
|
65
|
-
- lib/ruby_mod_kit/memo/
|
84
|
+
- lib/ruby_mod_kit/memo/overload_memo.rb
|
85
|
+
- lib/ruby_mod_kit/memo/parameter_memo.rb
|
86
|
+
- lib/ruby_mod_kit/memo_pad.rb
|
66
87
|
- lib/ruby_mod_kit/mission.rb
|
67
|
-
- lib/ruby_mod_kit/mission/fix_parse_error.rb
|
68
|
-
- lib/ruby_mod_kit/mission/ivar_arg.rb
|
69
|
-
- lib/ruby_mod_kit/mission/overload.rb
|
70
|
-
- lib/ruby_mod_kit/mission/type_attr.rb
|
71
|
-
- lib/ruby_mod_kit/mission/type_parameter.rb
|
72
|
-
- lib/ruby_mod_kit/mission/type_return.rb
|
73
88
|
- lib/ruby_mod_kit/node.rb
|
89
|
+
- lib/ruby_mod_kit/node/base_node.rb
|
74
90
|
- lib/ruby_mod_kit/node/call_node.rb
|
75
91
|
- lib/ruby_mod_kit/node/def_node.rb
|
76
92
|
- lib/ruby_mod_kit/node/def_parent_node.rb
|
@@ -79,32 +95,45 @@ files:
|
|
79
95
|
- lib/ruby_mod_kit/node/statements_node.rb
|
80
96
|
- lib/ruby_mod_kit/node/symbol_node.rb
|
81
97
|
- lib/ruby_mod_kit/node/untyped_node.rb
|
98
|
+
- lib/ruby_mod_kit/node/wrap.rb
|
82
99
|
- lib/ruby_mod_kit/offset_diff.rb
|
83
|
-
- lib/ruby_mod_kit/transpiler.rb
|
84
100
|
- lib/ruby_mod_kit/version.rb
|
85
101
|
- ruby_mod_kit.gemspec
|
86
|
-
- sig/generated/examples/user.rbs
|
87
102
|
- sig/generated/ruby_mod_kit.rbs
|
88
103
|
- sig/generated/ruby_mod_kit/cli.rbs
|
89
104
|
- sig/generated/ruby_mod_kit/core_ext/eval.rbs
|
90
105
|
- sig/generated/ruby_mod_kit/core_ext/load.rbs
|
106
|
+
- sig/generated/ruby_mod_kit/corrector.rbs
|
107
|
+
- sig/generated/ruby_mod_kit/corrector_manager.rbs
|
108
|
+
- sig/generated/ruby_mod_kit/feature.rbs
|
109
|
+
- sig/generated/ruby_mod_kit/feature/instance_variable_parameter.rbs
|
110
|
+
- sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rbs
|
111
|
+
- sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rbs
|
112
|
+
- sig/generated/ruby_mod_kit/feature/overload.rbs
|
113
|
+
- sig/generated/ruby_mod_kit/feature/overload/overload_mission.rbs
|
114
|
+
- sig/generated/ruby_mod_kit/feature/type.rbs
|
115
|
+
- sig/generated/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rbs
|
116
|
+
- sig/generated/ruby_mod_kit/feature/type/parameter_arrow_corrector.rbs
|
117
|
+
- sig/generated/ruby_mod_kit/feature/type/rbs_inline.rbs
|
118
|
+
- sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rbs
|
119
|
+
- sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rbs
|
120
|
+
- sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rbs
|
121
|
+
- sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rbs
|
122
|
+
- sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rbs
|
123
|
+
- sig/generated/ruby_mod_kit/feature/type/return_value_colon_corrector.rbs
|
124
|
+
- sig/generated/ruby_mod_kit/feature/type/type_attr_mission.rbs
|
91
125
|
- sig/generated/ruby_mod_kit/generation.rbs
|
92
126
|
- sig/generated/ruby_mod_kit/memo.rbs
|
93
|
-
- sig/generated/ruby_mod_kit/memo/
|
94
|
-
- sig/generated/ruby_mod_kit/memo/
|
95
|
-
- sig/generated/ruby_mod_kit/memo/
|
96
|
-
- sig/generated/ruby_mod_kit/memo/method.rbs
|
127
|
+
- sig/generated/ruby_mod_kit/memo/def_parent_memo.rbs
|
128
|
+
- sig/generated/ruby_mod_kit/memo/ivar_memo.rbs
|
129
|
+
- sig/generated/ruby_mod_kit/memo/method_memo.rbs
|
97
130
|
- sig/generated/ruby_mod_kit/memo/offset_memo.rbs
|
98
|
-
- sig/generated/ruby_mod_kit/memo/
|
99
|
-
- sig/generated/ruby_mod_kit/memo/
|
131
|
+
- sig/generated/ruby_mod_kit/memo/overload_memo.rbs
|
132
|
+
- sig/generated/ruby_mod_kit/memo/parameter_memo.rbs
|
133
|
+
- sig/generated/ruby_mod_kit/memo_pad.rbs
|
100
134
|
- sig/generated/ruby_mod_kit/mission.rbs
|
101
|
-
- sig/generated/ruby_mod_kit/mission/fix_parse_error.rbs
|
102
|
-
- sig/generated/ruby_mod_kit/mission/ivar_arg.rbs
|
103
|
-
- sig/generated/ruby_mod_kit/mission/overload.rbs
|
104
|
-
- sig/generated/ruby_mod_kit/mission/type_attr.rbs
|
105
|
-
- sig/generated/ruby_mod_kit/mission/type_parameter.rbs
|
106
|
-
- sig/generated/ruby_mod_kit/mission/type_return.rbs
|
107
135
|
- sig/generated/ruby_mod_kit/node.rbs
|
136
|
+
- sig/generated/ruby_mod_kit/node/base_node.rbs
|
108
137
|
- sig/generated/ruby_mod_kit/node/call_node.rbs
|
109
138
|
- sig/generated/ruby_mod_kit/node/def_node.rbs
|
110
139
|
- sig/generated/ruby_mod_kit/node/def_parent_node.rbs
|
@@ -113,8 +142,8 @@ files:
|
|
113
142
|
- sig/generated/ruby_mod_kit/node/statements_node.rbs
|
114
143
|
- sig/generated/ruby_mod_kit/node/symbol_node.rbs
|
115
144
|
- sig/generated/ruby_mod_kit/node/untyped_node.rbs
|
145
|
+
- sig/generated/ruby_mod_kit/node/wrap.rbs
|
116
146
|
- sig/generated/ruby_mod_kit/offset_diff.rbs
|
117
|
-
- sig/generated/ruby_mod_kit/transpiler.rbs
|
118
147
|
- sig/generated/ruby_mod_kit/version.rbs
|
119
148
|
- sig/sorted_set.rbs
|
120
149
|
- sig/thor.rbs
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# rbs_inline: enabled
|
4
|
-
|
5
|
-
module RubyModKit
|
6
|
-
class Memo
|
7
|
-
# The memo for def parent (class, module)
|
8
|
-
class DefParent < OffsetMemo
|
9
|
-
# @rbs @ivars_memo: Hash[Symbol, Memo::Ivar]
|
10
|
-
|
11
|
-
attr_reader :ivars_memo #: Hash[Symbol, Memo::Ivar]
|
12
|
-
|
13
|
-
# @rbs def_parent_node: Node::DefParentNode
|
14
|
-
# @rbs return: void
|
15
|
-
def initialize(def_parent_node)
|
16
|
-
@ivars_memo = {}
|
17
|
-
super(def_parent_node.offset)
|
18
|
-
end
|
19
|
-
|
20
|
-
# @rbs name: Symbol
|
21
|
-
# @rbs return: Memo::Ivar
|
22
|
-
def ivar_memo(name)
|
23
|
-
@ivars_memo[name] ||= Memo::Ivar.new(name)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,216 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# rbs_inline: enabled
|
4
|
-
|
5
|
-
module RubyModKit
|
6
|
-
class Mission
|
7
|
-
# The mission for parameter types
|
8
|
-
class FixParseError < Mission
|
9
|
-
# @rbs @previous_error_messages: Array[String]
|
10
|
-
|
11
|
-
# @rbs return: void
|
12
|
-
def initialize
|
13
|
-
super(0)
|
14
|
-
@previous_error_messages = []
|
15
|
-
end
|
16
|
-
|
17
|
-
# @rbs generation: Generation
|
18
|
-
# @rbs root_node: Node
|
19
|
-
# @rbs parse_result: Prism::ParseResult
|
20
|
-
# @rbs memo: Memo
|
21
|
-
# @rbs return: bool
|
22
|
-
def perform(generation, root_node, parse_result, memo)
|
23
|
-
return true if parse_result.errors.empty?
|
24
|
-
|
25
|
-
check_prev_errors(generation, parse_result)
|
26
|
-
@previous_error_messages = parse_result.errors.map(&:message)
|
27
|
-
|
28
|
-
parse_result.errors.each do |parse_error|
|
29
|
-
case parse_error.type
|
30
|
-
when :argument_formal_ivar
|
31
|
-
fix_argument_formal_ivar(parse_error, generation, root_node, memo)
|
32
|
-
when :argument_formal_constant
|
33
|
-
fix_argument_formal_constant(parse_error, generation)
|
34
|
-
when :unexpected_token_ignore
|
35
|
-
case parse_error.location.slice
|
36
|
-
when "=>"
|
37
|
-
fix_unexpected_assoc(parse_error, generation, root_node, memo)
|
38
|
-
when ":"
|
39
|
-
fix_unexpected_colon(parse_error, generation, root_node, memo)
|
40
|
-
end
|
41
|
-
when :def_params_term_paren
|
42
|
-
fix_def_params_term_paren(parse_error, generation, root_node, memo)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
false
|
47
|
-
end
|
48
|
-
|
49
|
-
# @rbs generation: Generation
|
50
|
-
# @rbs parse_result: Prism::ParseResult
|
51
|
-
# @rbs return: void
|
52
|
-
def check_prev_errors(generation, parse_result)
|
53
|
-
return if @previous_error_messages.empty?
|
54
|
-
return if parse_result.errors.empty?
|
55
|
-
return if @previous_error_messages != parse_result.errors.map(&:message)
|
56
|
-
|
57
|
-
message = +""
|
58
|
-
parse_result.errors.each do |parse_error|
|
59
|
-
message << "\n" unless message.empty?
|
60
|
-
message << "#{generation.name}:#{parse_error.location.start_line}:#{parse_error.message} "
|
61
|
-
message << "(#{parse_error.type})"
|
62
|
-
line = parse_result.source.lines[parse_error.location.start_line - 1]
|
63
|
-
if line
|
64
|
-
message << "\n#{line.chomp}\n"
|
65
|
-
message << "#{" " * parse_error.location.start_column}^#{"~" * [parse_error.location.length - 1, 0].max}"
|
66
|
-
end
|
67
|
-
end
|
68
|
-
raise RubyModKit::SyntaxError, message
|
69
|
-
end
|
70
|
-
|
71
|
-
# @rbs parse_error: Prism::ParseError
|
72
|
-
# @rbs generation: Generation
|
73
|
-
# @rbs root_node: Node
|
74
|
-
# @rbs memo: Memo
|
75
|
-
# @rbs return: void
|
76
|
-
def fix_def_params_term_paren(parse_error, generation, root_node, memo)
|
77
|
-
column = parse_error.location.start_column - 1
|
78
|
-
return if column < 0
|
79
|
-
|
80
|
-
line = generation.line(parse_error)[column..] || return
|
81
|
-
line =~ /\A\*(.*?)\s*=>\s*/
|
82
|
-
length = ::Regexp.last_match(0)&.length || return
|
83
|
-
type = ::Regexp.last_match(1) || return
|
84
|
-
offset = parse_error.location.start_offset - 1
|
85
|
-
parameter_position_node = root_node.node_at(offset + length) || return
|
86
|
-
|
87
|
-
generation[parse_error.location.start_offset, length - 1] = ""
|
88
|
-
parameter_memo = memo.parameter_memo(parameter_position_node)
|
89
|
-
parameter_memo.type = type
|
90
|
-
parameter_memo.qualifier = "*"
|
91
|
-
end
|
92
|
-
|
93
|
-
# @rbs parse_error: Prism::ParseError
|
94
|
-
# @rbs generation: Generation
|
95
|
-
# @rbs root_node: Node
|
96
|
-
# @rbs memo: Memo
|
97
|
-
# @rbs return: void
|
98
|
-
def fix_argument_formal_ivar(parse_error, generation, root_node, memo)
|
99
|
-
src_offset = parse_error.location.start_offset
|
100
|
-
|
101
|
-
name = parse_error.location.slice[1..]
|
102
|
-
raise RubyModKit::Error unless name
|
103
|
-
|
104
|
-
parameter_position_node = root_node.node_at(src_offset)
|
105
|
-
raise RubyModKit::Error unless parameter_position_node
|
106
|
-
|
107
|
-
generation[src_offset, parse_error.location.length] = name
|
108
|
-
parameter_memo = memo.parameter_memo(parameter_position_node)
|
109
|
-
parameter_memo.ivar_parameter = true
|
110
|
-
generation.add_mission(Mission::IvarArg.new(src_offset))
|
111
|
-
|
112
|
-
return unless parameter_memo.untyped?
|
113
|
-
|
114
|
-
def_parent_node = root_node.def_parent_node_at(parse_error.location.start_offset) || return
|
115
|
-
ivar_memo_type = memo.def_parent_memo(def_parent_node).ivar_memo(name.to_sym).type || return
|
116
|
-
parameter_memo.type = ivar_memo_type
|
117
|
-
end
|
118
|
-
|
119
|
-
# @rbs parse_error: Prism::ParseError
|
120
|
-
# @rbs generation: Generation
|
121
|
-
# @rbs return: void
|
122
|
-
def fix_argument_formal_constant(parse_error, generation)
|
123
|
-
line = generation.line(parse_error)
|
124
|
-
line = line[parse_error.location.start_column..] || return
|
125
|
-
parameter_type = line[/(\A[A-Z]\w*(?:::[A-Z]\w*)+)(?:\s*=>\s*)/, 1] || return
|
126
|
-
src_offset = parse_error.location.start_offset
|
127
|
-
generation[src_offset, parameter_type.length] = "(#{parameter_type})"
|
128
|
-
end
|
129
|
-
|
130
|
-
# @rbs parse_error: Prism::ParseError
|
131
|
-
# @rbs generation: Generation
|
132
|
-
# @rbs root_node: Node
|
133
|
-
# @rbs memo: Memo
|
134
|
-
# @rbs return: void
|
135
|
-
def fix_unexpected_assoc(parse_error, generation, root_node, memo)
|
136
|
-
def_node = root_node.def_node_at(parse_error.location.start_offset) || return
|
137
|
-
def_parent_node = def_node.parent
|
138
|
-
parameters_node, body_node, = def_node.children
|
139
|
-
return if !def_parent_node || !parameters_node || !body_node
|
140
|
-
|
141
|
-
last_parameter_node = parameters_node.children.max_by(&:offset) || return
|
142
|
-
last_parameter_offset = last_parameter_node.offset
|
143
|
-
|
144
|
-
right_node = body_node.children.find { _1.offset >= parse_error.location.end_offset } || return
|
145
|
-
right_offset = right_node.offset
|
146
|
-
parameter_type = generation[last_parameter_offset...right_offset] || raise(RubyModKit::Error)
|
147
|
-
parameter_type = parameter_type.sub(/\s*=>\s*\z/, "")
|
148
|
-
generation[last_parameter_offset, right_offset - last_parameter_offset] = ""
|
149
|
-
memo.parameter_memo(last_parameter_node).type = parameter_type
|
150
|
-
end
|
151
|
-
|
152
|
-
# @rbs parse_error: Prism::ParseError
|
153
|
-
# @rbs generation: Generation
|
154
|
-
# @rbs root_node: Node
|
155
|
-
# @rbs memo: Memo
|
156
|
-
# @rbs return: void
|
157
|
-
def fix_unexpected_colon(parse_error, generation, root_node, memo)
|
158
|
-
parent_node = root_node.statements_node_at(parse_error.location.start_offset)&.parent
|
159
|
-
case parent_node
|
160
|
-
when Node::DefNode
|
161
|
-
fix_unexpected_colon_in_def(parse_error, generation, root_node, parent_node, memo)
|
162
|
-
when Node::DefParentNode
|
163
|
-
fix_unexpected_colon_in_module(parse_error, generation, parent_node, memo)
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
# @rbs parse_error: Prism::ParseError
|
168
|
-
# @rbs generation: Generation
|
169
|
-
# @rbs root_node: Node
|
170
|
-
# @rbs def_node: Node::DefNode
|
171
|
-
# @rbs memo: Memo
|
172
|
-
# @rbs return: void
|
173
|
-
def fix_unexpected_colon_in_def(parse_error, generation, root_node, def_node, memo)
|
174
|
-
lparen_loc = def_node.lparen_loc
|
175
|
-
rparen_loc = def_node.rparen_loc
|
176
|
-
if !lparen_loc && !rparen_loc
|
177
|
-
src_offset = def_node.name_loc.end_offset
|
178
|
-
elsif lparen_loc && rparen_loc && lparen_loc.slice == "(" && rparen_loc.slice == ")"
|
179
|
-
src_offset = rparen_loc.end_offset
|
180
|
-
else
|
181
|
-
return
|
182
|
-
end
|
183
|
-
return if generation[src_offset...parse_error.location.start_offset] !~ /\A\s*\z/
|
184
|
-
|
185
|
-
return_type_location = root_node.node_at(parse_error.location.end_offset + 1)&.location || return_type_location
|
186
|
-
generation[src_offset, return_type_location.end_offset - src_offset] = ""
|
187
|
-
memo.method_memo(def_node).type = return_type_location.slice
|
188
|
-
end
|
189
|
-
|
190
|
-
# @rbs parse_error: Prism::ParseError
|
191
|
-
# @rbs generation: Generation
|
192
|
-
# @rbs def_parent_node: Node::DefParentNode
|
193
|
-
# @rbs memo: Memo
|
194
|
-
# @rbs return: void
|
195
|
-
def fix_unexpected_colon_in_module(parse_error, generation, def_parent_node, memo)
|
196
|
-
line = generation.line(parse_error)
|
197
|
-
line_offset = generation.src_offset(parse_error) || return
|
198
|
-
attr_patterns = %i[attr_reader reader getter attr_writer writer setter attr_accessor accessor property]
|
199
|
-
return if line !~ /(\A\s*)(?:(#{attr_patterns.join("|")}) )?@(\w*)\s*:\s*(.*)/
|
200
|
-
|
201
|
-
length = ::Regexp.last_match(0)&.length
|
202
|
-
indent = ::Regexp.last_match(1)
|
203
|
-
attr_kind = ::Regexp.last_match(2)
|
204
|
-
ivar_name = ::Regexp.last_match(3)
|
205
|
-
type = ::Regexp.last_match(4)
|
206
|
-
return if !length || !indent || !ivar_name || !type
|
207
|
-
|
208
|
-
ivar_memo = memo.def_parent_memo(def_parent_node).ivar_memo(ivar_name.to_sym)
|
209
|
-
ivar_memo.type = type
|
210
|
-
ivar_memo.attr_kind = attr_kind if attr_kind
|
211
|
-
|
212
|
-
generation[line_offset, length] = "#{indent}# @rbs @#{ivar_name}: #{Memo.unify_type(type)}"
|
213
|
-
end
|
214
|
-
end
|
215
|
-
end
|
216
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# rbs_inline: enabled
|
4
|
-
|
5
|
-
module RubyModKit
|
6
|
-
class Mission
|
7
|
-
# The mission for instance variable arguments
|
8
|
-
class IvarArg < Mission
|
9
|
-
# @rbs @assignment: String
|
10
|
-
|
11
|
-
attr_reader :assignment #: String
|
12
|
-
|
13
|
-
# @rbs generation: Generation
|
14
|
-
# @rbs root_node: Node
|
15
|
-
# @rbs _parse_result: Prism::ParseResult
|
16
|
-
# @rbs _memo: Memo
|
17
|
-
# @rbs return: bool
|
18
|
-
def perform(generation, root_node, _parse_result, _memo)
|
19
|
-
parameter_node = root_node.parameter_node_at(@offset)
|
20
|
-
raise RubyModKit::Error unless parameter_node
|
21
|
-
|
22
|
-
def_node = root_node.def_node_at(@offset)
|
23
|
-
raise RubyModKit::Error, "DefNode not found" unless def_node
|
24
|
-
|
25
|
-
def_body_location = def_node.body_location
|
26
|
-
end_loc = def_node.end_keyword_loc
|
27
|
-
if def_body_location
|
28
|
-
indent = def_body_location.start_column
|
29
|
-
src_offset = def_body_location.start_offset - indent
|
30
|
-
elsif end_loc
|
31
|
-
indent = end_loc.start_column + 2
|
32
|
-
src_offset = end_loc.start_offset - indent + 2
|
33
|
-
end
|
34
|
-
raise RubyModKit::Error if !src_offset || !indent
|
35
|
-
|
36
|
-
name = parameter_node.name
|
37
|
-
generation[src_offset, 0] = "#{" " * indent}@#{name} = #{name}\n"
|
38
|
-
true
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# rbs_inline: enabled
|
4
|
-
|
5
|
-
module RubyModKit
|
6
|
-
class Mission
|
7
|
-
# The mission for overload
|
8
|
-
class Overload < Mission
|
9
|
-
OVERLOAD_METHOD_MAP = {
|
10
|
-
"*": "_mul",
|
11
|
-
}.freeze #: Hash[Symbol, String]
|
12
|
-
|
13
|
-
# @rbs return: void
|
14
|
-
def initialize
|
15
|
-
super(0)
|
16
|
-
end
|
17
|
-
|
18
|
-
# @rbs generation: Generation
|
19
|
-
# @rbs root_node: Node
|
20
|
-
# @rbs parse_result: Prism::ParseResult
|
21
|
-
# @rbs memo: Memo
|
22
|
-
# @rbs return: bool
|
23
|
-
def perform(generation, root_node, parse_result, memo)
|
24
|
-
method_memo_groups = memo.methods_memo.each_value.group_by do |method_memo|
|
25
|
-
[root_node.def_parent_node_at(method_memo.offset), method_memo.name]
|
26
|
-
end
|
27
|
-
method_memo_groups.each_value do |method_memos|
|
28
|
-
next if method_memos.length <= 1
|
29
|
-
|
30
|
-
first_method_memo = method_memos.first
|
31
|
-
name = first_method_memo.name
|
32
|
-
first_def_node = root_node.def_node_at(first_method_memo.offset)
|
33
|
-
raise RubyModKit::Error unless first_def_node.is_a?(Node::DefNode)
|
34
|
-
raise RubyModKit::Error unless name.is_a?(Symbol)
|
35
|
-
|
36
|
-
start_line = first_def_node.location.start_line - 1
|
37
|
-
indent = parse_result.source.lines[start_line][/\A */] || ""
|
38
|
-
start_line -= 1 while parse_result.source.lines[start_line - 1] =~ /^ *# *@rbs /
|
39
|
-
src_offset = parse_result.source.offsets[start_line]
|
40
|
-
script = +""
|
41
|
-
|
42
|
-
method_memos.each do |method_memo|
|
43
|
-
script << if script.empty?
|
44
|
-
"# @rbs"
|
45
|
-
else
|
46
|
-
"# |"
|
47
|
-
end
|
48
|
-
type = method_memo.type
|
49
|
-
type = "(#{type})" if type.include?(" ")
|
50
|
-
script << " (#{method_memo.parameters.map(&:type).join(", ")}) -> #{type}\n"
|
51
|
-
end
|
52
|
-
script << "def #{name}(*args)\n case args\n"
|
53
|
-
overload_prefix = +"#{OVERLOAD_METHOD_MAP[name] || name}_"
|
54
|
-
method_memos.each_with_index do |method_memo, i|
|
55
|
-
overload_name = "#{overload_prefix}_overload#{i}"
|
56
|
-
def_node = root_node.def_node_at(method_memo.offset)
|
57
|
-
raise RubyModKit::Error if !def_node || !def_node.is_a?(Node::DefNode)
|
58
|
-
|
59
|
-
name_loc = def_node.name_loc
|
60
|
-
generation[name_loc.start_offset, name_loc.length] = overload_name
|
61
|
-
script << " in [#{method_memo.parameters.map(&:type).join(", ")}]\n"
|
62
|
-
script << " #{overload_name}(*args)\n"
|
63
|
-
end
|
64
|
-
script << " end\nend\n\n"
|
65
|
-
|
66
|
-
script.gsub!(/^(?=.)/, indent)
|
67
|
-
generation[src_offset, 0] = script
|
68
|
-
end
|
69
|
-
true
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|