ruby_mod_kit 0.0.3 → 0.0.5

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 (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 ] ]