ruby_mod_kit 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby_mod_kit.yml +5 -0
  3. data/README.md +89 -0
  4. data/lib/ruby_mod_kit/cli.rb +17 -2
  5. data/lib/ruby_mod_kit/config.rb +53 -0
  6. data/lib/ruby_mod_kit/core_ext/eval.rb +6 -10
  7. data/lib/ruby_mod_kit/corrector.rb +4 -3
  8. data/lib/ruby_mod_kit/corrector_manager.rb +18 -18
  9. data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rb +5 -7
  10. data/lib/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rb +4 -11
  11. data/lib/ruby_mod_kit/feature/overload/overload_mission.rb +8 -12
  12. data/lib/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rb +56 -0
  13. data/lib/ruby_mod_kit/feature/type/check/arguments.rb +23 -0
  14. data/lib/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rb +20 -12
  15. data/lib/ruby_mod_kit/feature/type/parameter_arrow_corrector.rb +35 -19
  16. data/lib/ruby_mod_kit/feature/type/rbs_inline/add_magic_comment_mission.rb +49 -0
  17. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rb +12 -7
  18. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rb +7 -8
  19. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rb +6 -9
  20. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rb +9 -10
  21. data/lib/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rb +5 -7
  22. data/lib/ruby_mod_kit/feature/type/rbs_inline.rb +3 -0
  23. data/lib/ruby_mod_kit/feature/type/return_value_colon_corrector.rb +5 -6
  24. data/lib/ruby_mod_kit/feature/type/type_attr_mission.rb +13 -17
  25. data/lib/ruby_mod_kit/feature/type/yard/type_parameter_mission.rb +35 -0
  26. data/lib/ruby_mod_kit/feature/type/yard/type_return_mission.rb +30 -0
  27. data/lib/ruby_mod_kit/feature/type/yard.rb +31 -0
  28. data/lib/ruby_mod_kit/feature.rb +0 -6
  29. data/lib/ruby_mod_kit/generation.rb +83 -39
  30. data/lib/ruby_mod_kit/memo/ivar_memo.rb +4 -0
  31. data/lib/ruby_mod_kit/memo/overload_memo.rb +1 -0
  32. data/lib/ruby_mod_kit/memo/parameter_memo.rb +4 -2
  33. data/lib/ruby_mod_kit/memo.rb +0 -2
  34. data/lib/ruby_mod_kit/memo_pad.rb +9 -0
  35. data/lib/ruby_mod_kit/mission.rb +1 -8
  36. data/lib/ruby_mod_kit/node/base_node.rb +39 -12
  37. data/lib/ruby_mod_kit/node/begin_node.rb +31 -0
  38. data/lib/ruby_mod_kit/node/call_node.rb +1 -1
  39. data/lib/ruby_mod_kit/node/def_node.rb +1 -1
  40. data/lib/ruby_mod_kit/node/def_parent_node.rb +13 -6
  41. data/lib/ruby_mod_kit/node/parameter_node.rb +3 -3
  42. data/lib/ruby_mod_kit/node/program_node.rb +6 -1
  43. data/lib/ruby_mod_kit/node/statements_node.rb +1 -1
  44. data/lib/ruby_mod_kit/node/symbol_node.rb +2 -1
  45. data/lib/ruby_mod_kit/node/untyped_node.rb +1 -1
  46. data/lib/ruby_mod_kit/node/wrap.rb +3 -1
  47. data/lib/ruby_mod_kit/node.rb +1 -2
  48. data/lib/ruby_mod_kit/version.rb +1 -1
  49. data/lib/ruby_mod_kit.rb +11 -11
  50. data/ruby_mod_kit.gemspec +7 -1
  51. data/sig/generated/ruby_mod_kit/cli.rbs +5 -0
  52. data/sig/generated/ruby_mod_kit/config.rbs +21 -0
  53. data/sig/generated/ruby_mod_kit/core_ext/eval.rbs +4 -2
  54. data/sig/generated/ruby_mod_kit/corrector.rbs +4 -3
  55. data/sig/generated/ruby_mod_kit/corrector_manager.rbs +3 -7
  56. data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_corrector.rbs +1 -3
  57. data/sig/generated/ruby_mod_kit/feature/instance_variable_parameter/instance_variable_parameter_mission.rbs +1 -8
  58. data/sig/generated/ruby_mod_kit/feature/overload/overload_mission.rbs +1 -4
  59. data/sig/generated/ruby_mod_kit/feature/type/check/arguments/add_arguments_checker_mission.rbs +16 -0
  60. data/sig/generated/ruby_mod_kit/feature/type/check/arguments.rbs +15 -0
  61. data/sig/generated/ruby_mod_kit/feature/type/instance_variable_colon_corrector.rbs +7 -3
  62. data/sig/generated/ruby_mod_kit/feature/type/parameter_arrow_corrector.rbs +8 -9
  63. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/add_magic_comment_mission.rbs +21 -0
  64. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_attr_mission.rbs +1 -4
  65. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_instance_variable_mission.rbs +1 -4
  66. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_overload_mission.rbs +1 -4
  67. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_parameter_mission.rbs +1 -4
  68. data/sig/generated/ruby_mod_kit/feature/type/rbs_inline/type_return_mission.rbs +1 -4
  69. data/sig/generated/ruby_mod_kit/feature/type/return_value_colon_corrector.rbs +1 -3
  70. data/sig/generated/ruby_mod_kit/feature/type/type_attr_mission.rbs +3 -4
  71. data/sig/generated/ruby_mod_kit/feature/type/yard/type_parameter_mission.rbs +16 -0
  72. data/sig/generated/ruby_mod_kit/feature/type/yard/type_return_mission.rbs +16 -0
  73. data/sig/generated/ruby_mod_kit/feature/type/yard.rbs +17 -0
  74. data/sig/generated/ruby_mod_kit/feature.rbs +0 -4
  75. data/sig/generated/ruby_mod_kit/generation.rbs +55 -15
  76. data/sig/generated/ruby_mod_kit/memo/ivar_memo.rbs +8 -0
  77. data/sig/generated/ruby_mod_kit/memo/overload_memo.rbs +2 -0
  78. data/sig/generated/ruby_mod_kit/memo/parameter_memo.rbs +6 -2
  79. data/sig/generated/ruby_mod_kit/memo_pad.rbs +8 -0
  80. data/sig/generated/ruby_mod_kit/mission.rbs +1 -8
  81. data/sig/generated/ruby_mod_kit/node/base_node.rbs +22 -8
  82. data/sig/generated/ruby_mod_kit/node/begin_node.rbs +26 -0
  83. data/sig/generated/ruby_mod_kit/node/def_parent_node.rbs +5 -0
  84. data/sig/generated/ruby_mod_kit/node/parameter_node.rbs +1 -1
  85. data/sig/generated/ruby_mod_kit/node/program_node.rbs +3 -0
  86. data/sig/generated/ruby_mod_kit/node/symbol_node.rbs +2 -0
  87. data/sig/generated/ruby_mod_kit.rbs +6 -3
  88. data/sig/yaml.rbs +3 -0
  89. metadata +21 -5
  90. data/sig/generated/ruby_mod_kit/memo.rbs +0 -7
  91. data/sig/generated/ruby_mod_kit/node.rbs +0 -7
data/lib/ruby_mod_kit.rb CHANGED
@@ -14,9 +14,10 @@ module RubyModKit
14
14
  # @rbs file: String
15
15
  # @rbs *args: String
16
16
  # @rbs output: String | nil
17
+ # @rbs config: nil | Config
17
18
  # @rbs return: void
18
- def execute_file(file, *args, output: nil)
19
- rb_script = transpile_file(file, output: output)
19
+ def execute_file(file, *args, output: nil, config: nil)
20
+ rb_script = transpile_file(file, output: output, config: config)
20
21
  if output
21
22
  execute_rb_file(output, *args)
22
23
  else
@@ -26,9 +27,10 @@ module RubyModKit
26
27
 
27
28
  # @rbs file: String
28
29
  # @rbs output: String | IO | nil
30
+ # @rbs config: nil | Config
29
31
  # @rbs return: String
30
- def transpile_file(file, output: nil)
31
- rb_script = transpile(File.read(file), filename: file)
32
+ def transpile_file(file, output: nil, config: nil)
33
+ rb_script = transpile(File.read(file), filename: file, config: config)
32
34
  case output
33
35
  when IO
34
36
  output.write(rb_script)
@@ -40,9 +42,10 @@ module RubyModKit
40
42
 
41
43
  # @rbs src: String
42
44
  # @rbs filename: String | nil
45
+ # @rbs config: nil | Config
43
46
  # @rbs return: String
44
- def transpile(src, filename: nil)
45
- Generation.resolve(src, filename: filename).script
47
+ def transpile(src, filename: nil, config: nil)
48
+ Generation.resolve(src, filename: filename, config: config).script
46
49
  end
47
50
 
48
51
  # @rbs file: String
@@ -75,6 +78,8 @@ module RubyModKit
75
78
  end
76
79
 
77
80
  require_relative "ruby_mod_kit/version"
81
+
82
+ require_relative "ruby_mod_kit/config"
78
83
  require_relative "ruby_mod_kit/corrector"
79
84
  require_relative "ruby_mod_kit/corrector_manager"
80
85
  require_relative "ruby_mod_kit/feature"
@@ -84,8 +89,3 @@ require_relative "ruby_mod_kit/memo_pad"
84
89
  require_relative "ruby_mod_kit/mission"
85
90
  require_relative "ruby_mod_kit/node"
86
91
  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
@@ -26,7 +26,13 @@ Gem::Specification.new do |spec|
26
26
  `git ls-files -z`.split("\x0").reject do |f|
27
27
  next true if File.expand_path(f) == __FILE__
28
28
  next false if f =~ %r{\Aexamples/.*rbm?\z}
29
- next true if f.start_with?(*%w[bin/ test/ spec/ features/ coverage/ bin/ .git])
29
+ next true if f.start_with?(
30
+ *%w[
31
+ bin/ test/ spec/ features/ coverage/ bin/ .git
32
+ lib/internal/ sig/generated/internal/
33
+ sig/rubocop
34
+ ],
35
+ )
30
36
  next true if %w[Gemfile Gemfile.lock .rspec .rubocop.yml Rakefile Steepfile].include?(f)
31
37
  next true if f.end_with?(".rbm")
32
38
 
@@ -10,5 +10,10 @@ module RubyModKit
10
10
  # @rbs *args: String
11
11
  # @rbs return: void
12
12
  def transpile: (*String args) -> void
13
+
14
+ private
15
+
16
+ # @rbs return: Config | nil
17
+ def config: () -> (Config | nil)
13
18
  end
14
19
  end
@@ -0,0 +1,21 @@
1
+ # Generated from lib/ruby_mod_kit/config.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ # config class
5
+ class Config
6
+ @features: Array[Config]
7
+
8
+ attr_reader features: Array[Config]
9
+
10
+ DEFAULT_FEATURES: Array[String]
11
+
12
+ # @rbs features: Array[String]
13
+ # @rbs return: void
14
+ def initialize: (?features: Array[String]) -> void
15
+
16
+ # @rbs path: String
17
+ # @rbs if_none: nil | Symbol
18
+ # @rbs return: Config | nil
19
+ def self.load: (String path, ?if_none: nil | Symbol) -> (Config | nil)
20
+ end
21
+ end
@@ -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
 
@@ -8,9 +8,10 @@ module RubyModKit
8
8
 
9
9
  # @rbs _parse_error: Prism::ParseError
10
10
  # @rbs _generation: Generation
11
- # @rbs _root_node: Node::ProgramNode
12
- # @rbs _memo_pad: MemoPad
13
11
  # @rbs return: void
14
- def correct: (untyped _parse_error, untyped _generation, untyped _root_node, untyped _memo_pad) -> void
12
+ def correct: (untyped _parse_error, untyped _generation) -> void
13
+
14
+ # @rbs return: void
15
+ def setup: () -> void
15
16
  end
16
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
 
@@ -12,15 +12,11 @@ module RubyModKit
12
12
  def initialize: (Array[Feature] features) -> void
13
13
 
14
14
  # @rbs generation: Generation
15
- # @rbs root_node: Node::ProgramNode
16
- # @rbs parse_result: Prism::ParseResult
17
- # @rbs memo_pad: MemoPad
18
15
  # @rbs return: bool
19
- def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
16
+ def perform: (Generation generation) -> bool
20
17
 
21
18
  # @rbs generation: Generation
22
- # @rbs parse_result: Prism::ParseResult
23
19
  # @rbs return: void
24
- def check_prev_errors: (Generation generation, Prism::ParseResult parse_result) -> void
20
+ def check_prev_errors: (Generation generation) -> void
25
21
  end
26
22
  end
@@ -10,10 +10,8 @@ module RubyModKit
10
10
 
11
11
  # @rbs parse_error: Prism::ParseError
12
12
  # @rbs generation: Generation
13
- # @rbs root_node: Node::ProgramNode
14
- # @rbs memo_pad: MemoPad
15
13
  # @rbs return: void
16
- def correct: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
14
+ def correct: (Prism::ParseError parse_error, Generation generation) -> void
17
15
  end
18
16
  end
19
17
  end
@@ -5,16 +5,9 @@ module RubyModKit
5
5
  class InstanceVariableParameter
6
6
  # The mission for instance variable arguments
7
7
  class InstanceVariableParameterMission < Mission
8
- @assignment: String
9
-
10
- attr_reader assignment: String
11
-
12
8
  # @rbs generation: Generation
13
- # @rbs root_node: Node::ProgramNode
14
- # @rbs _parse_result: Prism::ParseResult
15
- # @rbs memo_pad: MemoPad
16
9
  # @rbs return: bool
17
- def perform: (Generation generation, Node::ProgramNode root_node, untyped _parse_result, MemoPad memo_pad) -> bool
10
+ def perform: (Generation generation) -> bool
18
11
  end
19
12
  end
20
13
  end
@@ -13,11 +13,8 @@ module RubyModKit
13
13
  def initialize: () -> void
14
14
 
15
15
  # @rbs generation: Generation
16
- # @rbs root_node: Node::ProgramNode
17
- # @rbs parse_result: Prism::ParseResult
18
- # @rbs memo_pad: MemoPad
19
16
  # @rbs return: bool
20
- def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
17
+ def perform: (Generation generation) -> bool
21
18
  end
22
19
  end
23
20
  end
@@ -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,15 +5,19 @@ module RubyModKit
5
5
  class Type
6
6
  # the class to correct `@var: Type` -> `# @rbs @var: Type`
7
7
  class InstanceVariableColonCorrector < Corrector
8
+ VISIBILITIES: Array[Symbol]
9
+
10
+ ATTR_PATTERNS: Array[Symbol]
11
+
12
+ REGEXP: Regexp
13
+
8
14
  # @rbs return: Array[Symbol]
9
15
  def correctable_error_types: () -> Array[Symbol]
10
16
 
11
17
  # @rbs parse_error: Prism::ParseError
12
18
  # @rbs generation: Generation
13
- # @rbs root_node: Node::ProgramNode
14
- # @rbs memo_pad: MemoPad
15
19
  # @rbs return: void
16
- def correct: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
20
+ def correct: (Prism::ParseError parse_error, Generation generation) -> void
17
21
  end
18
22
  end
19
23
  end
@@ -5,29 +5,28 @@ 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
- # @rbs root_node: Node::ProgramNode
14
- # @rbs memo_pad: MemoPad
15
18
  # @rbs return: void
16
- def correct: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
19
+ def correct: (Prism::ParseError parse_error, Generation generation) -> void
17
20
 
18
21
  # @rbs parse_error: Prism::ParseError
19
22
  # @rbs generation: Generation
20
- # @rbs root_node: Node::ProgramNode
21
- # @rbs memo_pad: MemoPad
22
23
  # @rbs return: void
23
- def remove_arrow_before_parameter: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
24
+ def remove_arrow_before_parameter: (Prism::ParseError parse_error, Generation generation) -> void
24
25
 
25
26
  # @rbs parse_error: Prism::ParseError
26
27
  # @rbs generation: Generation
27
- # @rbs root_node: Node::ProgramNode
28
- # @rbs memo_pad: MemoPad
29
28
  # @rbs return: void
30
- def remove_arrow_after_quailifier: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
29
+ def remove_arrow_after_quailifier: (Prism::ParseError parse_error, Generation generation) -> void
31
30
 
32
31
  # @rbs parse_error: Prism::ParseError
33
32
  # @rbs generation: Generation
@@ -0,0 +1,21 @@
1
+ # Generated from lib/ruby_mod_kit/feature/type/rbs_inline/add_magic_comment_mission.rb with RBS::Inline
2
+
3
+ module RubyModKit
4
+ class Feature
5
+ class Type
6
+ class RbsInline
7
+ # The mission to add magic comment
8
+ class AddMagicCommentMission < Mission
9
+ @reloaded: bool
10
+
11
+ # @rbs return: void
12
+ def initialize: () -> void
13
+
14
+ # @rbs generation: Generation
15
+ # @rbs return: bool
16
+ def perform: (Generation generation) -> bool
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -7,11 +7,8 @@ module RubyModKit
7
7
  # The mission for parameter types
8
8
  class TypeAttrMission < Mission
9
9
  # @rbs generation: Generation
10
- # @rbs root_node: Node::ProgramNode
11
- # @rbs _parse_result: Prism::ParseResult
12
- # @rbs memo_pad: MemoPad
13
10
  # @rbs return: bool
14
- def perform: (Generation generation, Node::ProgramNode root_node, untyped _parse_result, MemoPad memo_pad) -> bool
11
+ def perform: (Generation generation) -> bool
15
12
  end
16
13
  end
17
14
  end
@@ -7,11 +7,8 @@ module RubyModKit
7
7
  # The mission for instance variable types
8
8
  class TypeInstanceVariableMission < Mission
9
9
  # @rbs generation: Generation
10
- # @rbs root_node: Node::ProgramNode
11
- # @rbs parse_result: Prism::ParseResult
12
- # @rbs memo_pad: MemoPad
13
10
  # @rbs return: bool
14
- def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
11
+ def perform: (Generation generation) -> bool
15
12
  end
16
13
  end
17
14
  end
@@ -7,11 +7,8 @@ module RubyModKit
7
7
  # The mission for parameter types
8
8
  class TypeOverloadMission < Mission
9
9
  # @rbs generation: Generation
10
- # @rbs root_node: Node::ProgramNode
11
- # @rbs parse_result: Prism::ParseResult
12
- # @rbs memo_pad: MemoPad
13
10
  # @rbs return: bool
14
- def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
11
+ def perform: (Generation generation) -> bool
15
12
  end
16
13
  end
17
14
  end
@@ -7,11 +7,8 @@ module RubyModKit
7
7
  # The mission for parameter types
8
8
  class TypeParameterMission < Mission
9
9
  # @rbs generation: Generation
10
- # @rbs root_node: Node::ProgramNode
11
- # @rbs parse_result: Prism::ParseResult
12
- # @rbs memo_pad: MemoPad
13
10
  # @rbs return: bool
14
- def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
11
+ def perform: (Generation generation) -> bool
15
12
  end
16
13
  end
17
14
  end
@@ -7,11 +7,8 @@ module RubyModKit
7
7
  # The mission for parameter types
8
8
  class TypeReturnMission < Mission
9
9
  # @rbs generation: Generation
10
- # @rbs root_node: Node::ProgramNode
11
- # @rbs parse_result: Prism::ParseResult
12
- # @rbs memo_pad: MemoPad
13
10
  # @rbs return: bool
14
- def perform: (Generation generation, Node::ProgramNode root_node, Prism::ParseResult parse_result, MemoPad memo_pad) -> bool
11
+ def perform: (Generation generation) -> bool
15
12
  end
16
13
  end
17
14
  end
@@ -10,10 +10,8 @@ module RubyModKit
10
10
 
11
11
  # @rbs parse_error: Prism::ParseError
12
12
  # @rbs generation: Generation
13
- # @rbs root_node: Node::ProgramNode
14
- # @rbs memo_pad: MemoPad
15
13
  # @rbs return: void
16
- def correct: (Prism::ParseError parse_error, Generation generation, Node::ProgramNode root_node, MemoPad memo_pad) -> void
14
+ def correct: (Prism::ParseError parse_error, Generation generation) -> void
17
15
  end
18
16
  end
19
17
  end
@@ -5,15 +5,14 @@ module RubyModKit
5
5
  class Type
6
6
  # The mission for parameter attributes
7
7
  class TypeAttrMission < Mission
8
+ @modified: bool
9
+
8
10
  # @rbs return: void
9
11
  def initialize: () -> void
10
12
 
11
13
  # @rbs generation: Generation
12
- # @rbs root_node: Node::ProgramNode
13
- # @rbs _parse_result: Prism::ParseResult
14
- # @rbs memo_pad: MemoPad
15
14
  # @rbs return: bool
16
- def perform: (Generation generation, Node::ProgramNode root_node, untyped _parse_result, MemoPad memo_pad) -> bool
15
+ def perform: (Generation generation) -> bool
17
16
  end
18
17
  end
19
18
  end
@@ -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
@@ -3,10 +3,6 @@
3
3
  module RubyModKit
4
4
  # the base class of feature
5
5
  class Feature
6
- # @rbs other: Feature
7
- # @rbs return: -1 | 0 | 1 | nil
8
- def <=>: (Feature other) -> (-1 | 0 | 1 | nil)
9
-
10
6
  # @rbs return: Array[Corrector]
11
7
  def create_correctors: () -> Array[Corrector]
12
8
 
@@ -3,8 +3,6 @@
3
3
  module RubyModKit
4
4
  # The class of transpiler generation.
5
5
  class Generation
6
- @parse_result: Prism::ParseResult
7
-
8
6
  @script: String
9
7
 
10
8
  @missions: Array[Mission]
@@ -23,19 +21,38 @@ module RubyModKit
23
21
 
24
22
  @features: Array[Feature]
25
23
 
26
- attr_reader parse_result: Prism::ParseResult
24
+ @config: Config
25
+
26
+ @errors: Array[Prism::ParseError]
27
+
28
+ @lines: Array[String]
29
+
30
+ @offsets: Array[Integer]
31
+
32
+ @source: String
27
33
 
28
34
  attr_reader script: String
29
35
 
36
+ attr_reader memo_pad: MemoPad
37
+
38
+ attr_reader root_node: Node::ProgramNode
39
+
40
+ attr_reader errors: Array[Prism::ParseError]
41
+
42
+ attr_reader lines: Array[String]
43
+
44
+ attr_reader offsets: Array[Integer]
45
+
30
46
  # @rbs script: String
31
47
  # @rbs missions: Array[Mission]
32
48
  # @rbs memo_pad: MemoPad | nil
33
49
  # @rbs generation_num: Integer
50
+ # @rbs config: Config | nil
34
51
  # @rbs filename: String | nil
35
52
  # @rbs corrector_manager: CorrectorManager | nil
36
53
  # @rbs features: Array[Feature] | nil
37
54
  # @rbs return: void
38
- def initialize: (String script, ?missions: Array[Mission], ?memo_pad: MemoPad | nil, ?generation_num: Integer, ?filename: String | nil, ?corrector_manager: CorrectorManager | nil, ?features: Array[Feature] | nil) -> void
55
+ def initialize: (String script, ?missions: Array[Mission], ?memo_pad: MemoPad | nil, ?generation_num: Integer, ?config: Config | nil, ?filename: String | nil, ?corrector_manager: CorrectorManager | nil, ?features: Array[Feature] | nil) -> void
39
56
 
40
57
  # @rbs return: void
41
58
  def init_missions: () -> void
@@ -58,13 +75,9 @@ module RubyModKit
58
75
  # @rbs return: String
59
76
  def []=: (Integer src_offset, Integer length, String str) -> String
60
77
 
61
- # @rbs src_range: Range[Integer]
78
+ # @rbs src_range: Range[Integer | nil]
62
79
  # @rbs return: String
63
- def []: (Range[Integer] src_range) -> String
64
-
65
- # @rbs offset: Integer
66
- # @rbs return: String
67
- def line_by_offset: (Integer offset) -> String
80
+ def []: (Range[Integer | nil] src_range) -> String
68
81
 
69
82
  # @rbs (Integer) -> String
70
83
  # | (Node::BaseNode) -> String
@@ -86,17 +99,43 @@ module RubyModKit
86
99
  def line__overload2: (Prism::ParseError parse_error) -> String
87
100
 
88
101
  # @rbs (Integer) -> (Integer | nil)
102
+ # | (Node::BaseNode) -> (Integer | nil)
103
+ # | (Node::BaseNode, Integer) -> (Integer | nil)
89
104
  # | (Prism::ParseError) -> (Integer | nil)
90
- def src_offset: (Integer) -> (Integer | nil)
91
- | (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)
92
109
 
93
110
  # @rbs line_num: Integer
94
111
  # @rbs return: Integer | nil
95
- 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)
96
122
 
97
123
  # @rbs parse_error: Prism::ParseError
98
124
  # @rbs return: Integer | nil
99
- 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
100
139
 
101
140
  # @rbs return: void
102
141
  def perform_corrector: () -> void
@@ -110,7 +149,8 @@ module RubyModKit
110
149
 
111
150
  # @rbs src: String
112
151
  # @rbs filename: String | nil
152
+ # @rbs config: Config | nil
113
153
  # @rbs return: Generation
114
- def self.resolve: (String src, ?filename: String | nil) -> Generation
154
+ def self.resolve: (String src, ?filename: String | nil, ?config: Config | nil) -> Generation
115
155
  end
116
156
  end
@@ -14,6 +14,10 @@ module RubyModKit
14
14
 
15
15
  @name: Symbol
16
16
 
17
+ @visibility: nil | Symbol
18
+
19
+ @separator: String
20
+
17
21
  attr_reader type: nil | String
18
22
 
19
23
  attr_reader attr_kind: nil | Symbol
@@ -22,6 +26,10 @@ module RubyModKit
22
26
 
23
27
  attr_accessor indent: String
24
28
 
29
+ attr_accessor visibility: nil | Symbol
30
+
31
+ attr_accessor separator: String
32
+
25
33
  # @rbs name: Symbol
26
34
  # @rbs return: void
27
35
  def initialize: (Symbol name) -> void
@@ -10,6 +10,8 @@ module RubyModKit
10
10
 
11
11
  @offset_corrected: bool
12
12
 
13
+ @offset: Integer
14
+
13
15
  attr_reader name: Symbol
14
16
 
15
17
  attr_reader overload_types: [ [ Array[String], String ] ]