rbi 0.2.4 → 0.3.0

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.
@@ -4,15 +4,14 @@
4
4
  module RBI
5
5
  module Rewriters
6
6
  class AddSigTemplates < Visitor
7
- extend T::Sig
8
-
9
- sig { params(with_todo_comment: T::Boolean).void }
7
+ #: (?with_todo_comment: bool) -> void
10
8
  def initialize(with_todo_comment: true)
11
9
  super()
12
10
  @with_todo_comment = with_todo_comment
13
11
  end
14
12
 
15
- sig { override.params(node: T.nilable(Node)).void }
13
+ # @override
14
+ #: (Node? node) -> void
16
15
  def visit(node)
17
16
  case node
18
17
  when Tree
@@ -26,7 +25,7 @@ module RBI
26
25
 
27
26
  private
28
27
 
29
- sig { params(attr: Attr).void }
28
+ #: (Attr attr) -> void
30
29
  def add_attr_sig(attr)
31
30
  return unless attr.sigs.empty?
32
31
  return if attr.names.size > 1
@@ -41,7 +40,7 @@ module RBI
41
40
  add_todo_comment(attr)
42
41
  end
43
42
 
44
- sig { params(method: Method).void }
43
+ #: (Method method) -> void
45
44
  def add_method_sig(method)
46
45
  return unless method.sigs.empty?
47
46
 
@@ -52,7 +51,7 @@ module RBI
52
51
  add_todo_comment(method)
53
52
  end
54
53
 
55
- sig { params(node: NodeWithComments).void }
54
+ #: (NodeWithComments node) -> void
56
55
  def add_todo_comment(node)
57
56
  node.comments << Comment.new("TODO: fill in signature with appropriate type information") if @with_todo_comment
58
57
  end
@@ -60,9 +59,7 @@ module RBI
60
59
  end
61
60
 
62
61
  class Tree
63
- extend T::Sig
64
-
65
- sig { params(with_todo_comment: T::Boolean).void }
62
+ #: (?with_todo_comment: bool) -> void
66
63
  def add_sig_templates!(with_todo_comment: true)
67
64
  visitor = Rewriters::AddSigTemplates.new(with_todo_comment: with_todo_comment)
68
65
  visitor.visit(self)
@@ -4,9 +4,7 @@
4
4
  module RBI
5
5
  module Rewriters
6
6
  class Annotate < Visitor
7
- extend T::Sig
8
-
9
- sig { params(annotation: String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
7
+ #: (String annotation, ?annotate_scopes: bool, ?annotate_properties: bool) -> void
10
8
  def initialize(annotation, annotate_scopes: false, annotate_properties: false)
11
9
  super()
12
10
  @annotation = annotation
@@ -14,7 +12,8 @@ module RBI
14
12
  @annotate_properties = annotate_properties
15
13
  end
16
14
 
17
- sig { override.params(node: T.nilable(Node)).void }
15
+ # @override
16
+ #: (Node? node) -> void
18
17
  def visit(node)
19
18
  case node
20
19
  when Scope
@@ -27,14 +26,14 @@ module RBI
27
26
 
28
27
  private
29
28
 
30
- sig { params(node: NodeWithComments).void }
29
+ #: (NodeWithComments node) -> void
31
30
  def annotate_node(node)
32
31
  return if node.annotations.one?(@annotation)
33
32
 
34
33
  node.comments << Comment.new("@#{@annotation}")
35
34
  end
36
35
 
37
- sig { params(node: Node).returns(T::Boolean) }
36
+ #: (Node node) -> bool
38
37
  def root?(node)
39
38
  parent = node.parent_tree
40
39
  parent.is_a?(Tree) && parent.parent_tree.nil?
@@ -43,9 +42,7 @@ module RBI
43
42
  end
44
43
 
45
44
  class Tree
46
- extend T::Sig
47
-
48
- sig { params(annotation: String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
45
+ #: (String annotation, ?annotate_scopes: bool, ?annotate_properties: bool) -> void
49
46
  def annotate!(annotation, annotate_scopes: false, annotate_properties: false)
50
47
  visitor = Rewriters::Annotate.new(
51
48
  annotation,
@@ -3,10 +3,10 @@
3
3
 
4
4
  module RBI
5
5
  class UnexpectedMultipleSigsError < Error
6
- sig { returns(Node) }
6
+ #: Node
7
7
  attr_reader :node
8
8
 
9
- sig { params(node: Node).void }
9
+ #: (Node node) -> void
10
10
  def initialize(node)
11
11
  super(<<~MSG)
12
12
  This declaration cannot have more than one sig.
@@ -20,9 +20,8 @@ module RBI
20
20
 
21
21
  module Rewriters
22
22
  class AttrToMethods < Visitor
23
- extend T::Sig
24
-
25
- sig { override.params(node: T.nilable(Node)).void }
23
+ # @override
24
+ #: (Node? node) -> void
26
25
  def visit(node)
27
26
  case node
28
27
  when Tree
@@ -35,7 +34,7 @@ module RBI
35
34
 
36
35
  private
37
36
 
38
- sig { params(node: Node, with: T::Array[Node]).void }
37
+ #: (Node node, with: Array[Node]) -> void
39
38
  def replace(node, with:)
40
39
  tree = node.parent_tree
41
40
  raise ReplaceNodeError, "Can't replace #{self} without a parent tree" unless tree
@@ -47,9 +46,7 @@ module RBI
47
46
  end
48
47
 
49
48
  class Tree
50
- extend T::Sig
51
-
52
- sig { void }
49
+ #: -> void
53
50
  def replace_attributes_with_methods!
54
51
  visitor = Rewriters::AttrToMethods.new
55
52
  visitor.visit(self)
@@ -62,7 +59,8 @@ module RBI
62
59
 
63
60
  private
64
61
 
65
- sig(:final) { returns([T.nilable(Sig), T.nilable(T.any(Type, String))]) }
62
+ # @final
63
+ #: -> [Sig?, (Type | String)?]
66
64
  def parse_sig
67
65
  raise UnexpectedMultipleSigsError, self if 1 < sigs.count
68
66
 
@@ -77,15 +75,7 @@ module RBI
77
75
  [sig, attribute_type]
78
76
  end
79
77
 
80
- sig do
81
- params(
82
- name: String,
83
- sig: T.nilable(Sig),
84
- visibility: Visibility,
85
- loc: T.nilable(Loc),
86
- comments: T::Array[Comment],
87
- ).returns(Method)
88
- end
78
+ #: (String name, Sig? sig, Visibility visibility, Loc? loc, Array[Comment] comments) -> Method
89
79
  def create_getter_method(name, sig, visibility, loc, comments)
90
80
  Method.new(
91
81
  name,
@@ -97,16 +87,7 @@ module RBI
97
87
  )
98
88
  end
99
89
 
100
- sig do
101
- params(
102
- name: String,
103
- sig: T.nilable(Sig),
104
- attribute_type: T.nilable(T.any(Type, String)),
105
- visibility: Visibility,
106
- loc: T.nilable(Loc),
107
- comments: T::Array[Comment],
108
- ).returns(Method)
109
- end
90
+ #: (String name, Sig? sig, (Type | String)? attribute_type, Visibility visibility, Loc? loc, Array[Comment] comments) -> Method
110
91
  def create_setter_method(name, sig, attribute_type, visibility, loc, comments) # rubocop:disable Metrics/ParameterLists
111
92
  sig = if sig # Modify the original sig to correct the name, and remove the return type
112
93
  params = attribute_type ? [SigParam.new(name, attribute_type)] : []
@@ -136,7 +117,8 @@ module RBI
136
117
  end
137
118
 
138
119
  class AttrAccessor
139
- sig { override.returns(T::Array[Method]) }
120
+ # @override
121
+ #: -> Array[Method]
140
122
  def convert_to_methods
141
123
  sig, attribute_type = parse_sig
142
124
 
@@ -150,7 +132,8 @@ module RBI
150
132
  end
151
133
 
152
134
  class AttrReader
153
- sig { override.returns(T::Array[Method]) }
135
+ # @override
136
+ #: -> Array[Method]
154
137
  def convert_to_methods
155
138
  sig, _ = parse_sig
156
139
 
@@ -159,7 +142,8 @@ module RBI
159
142
  end
160
143
 
161
144
  class AttrWriter
162
- sig { override.returns(T::Array[Method]) }
145
+ # @override
146
+ #: -> Array[Method]
163
147
  def convert_to_methods
164
148
  sig, attribute_type = parse_sig
165
149
 
@@ -4,15 +4,14 @@
4
4
  module RBI
5
5
  module Rewriters
6
6
  class Deannotate < Visitor
7
- extend T::Sig
8
-
9
- sig { params(annotation: String).void }
7
+ #: (String annotation) -> void
10
8
  def initialize(annotation)
11
9
  super()
12
10
  @annotation = annotation
13
11
  end
14
12
 
15
- sig { override.params(node: T.nilable(Node)).void }
13
+ # @override
14
+ #: (Node? node) -> void
16
15
  def visit(node)
17
16
  case node
18
17
  when Scope, Const, Attr, Method, TStructField, TypeMember
@@ -23,7 +22,7 @@ module RBI
23
22
 
24
23
  private
25
24
 
26
- sig { params(node: NodeWithComments).void }
25
+ #: (NodeWithComments node) -> void
27
26
  def deannotate_node(node)
28
27
  return unless node.annotations.one?(@annotation)
29
28
 
@@ -35,9 +34,7 @@ module RBI
35
34
  end
36
35
 
37
36
  class Tree
38
- extend T::Sig
39
-
40
- sig { params(annotation: String).void }
37
+ #: (String annotation) -> void
41
38
  def deannotate!(annotation)
42
39
  visitor = Rewriters::Deannotate.new(annotation)
43
40
  visitor.visit(self)
@@ -55,27 +55,24 @@ module RBI
55
55
  # RBI with no versions:
56
56
  # - RBI with no version annotations are automatically counted towards ALL versions
57
57
  class FilterVersions < Visitor
58
- extend T::Sig
59
-
60
58
  VERSION_PREFIX = "version "
61
59
 
62
60
  class << self
63
- extend T::Sig
64
-
65
- sig { params(tree: Tree, version: Gem::Version).void }
61
+ #: (Tree tree, Gem::Version version) -> void
66
62
  def filter(tree, version)
67
63
  v = new(version)
68
64
  v.visit(tree)
69
65
  end
70
66
  end
71
67
 
72
- sig { params(version: Gem::Version).void }
68
+ #: (Gem::Version version) -> void
73
69
  def initialize(version)
74
70
  super()
75
71
  @version = version
76
72
  end
77
73
 
78
- sig { override.params(node: T.nilable(Node)).void }
74
+ # @override
75
+ #: (Node? node) -> void
79
76
  def visit(node)
80
77
  return unless node
81
78
 
@@ -90,7 +87,7 @@ module RBI
90
87
  end
91
88
 
92
89
  class Node
93
- sig { params(version: Gem::Version).returns(T::Boolean) }
90
+ #: (Gem::Version version) -> bool
94
91
  def satisfies_version?(version)
95
92
  return true unless is_a?(NodeWithComments)
96
93
 
@@ -100,7 +97,7 @@ module RBI
100
97
  end
101
98
 
102
99
  class NodeWithComments
103
- sig { returns(T::Array[Gem::Requirement]) }
100
+ #: -> Array[Gem::Requirement]
104
101
  def version_requirements
105
102
  annotations.select do |annotation|
106
103
  annotation.start_with?(Rewriters::FilterVersions::VERSION_PREFIX)
@@ -112,9 +109,7 @@ module RBI
112
109
  end
113
110
 
114
111
  class Tree
115
- extend T::Sig
116
-
117
- sig { params(version: Gem::Version).void }
112
+ #: (Gem::Version version) -> void
118
113
  def filter_versions!(version)
119
114
  visitor = Rewriters::FilterVersions.new(version)
120
115
  visitor.visit(self)
@@ -28,9 +28,8 @@ module RBI
28
28
  # end
29
29
  # ~~~
30
30
  class FlattenSingletonMethods < Visitor
31
- extend T::Sig
32
-
33
- sig { override.params(node: T.nilable(Node)).void }
31
+ # @override
32
+ #: (Node? node) -> void
34
33
  def visit(node)
35
34
  return unless node
36
35
 
@@ -54,9 +53,7 @@ module RBI
54
53
  end
55
54
 
56
55
  class Tree
57
- extend T::Sig
58
-
59
- sig { void }
56
+ #: -> void
60
57
  def flatten_singleton_methods!
61
58
  visitor = Rewriters::FlattenSingletonMethods.new
62
59
  visitor.visit(self)
@@ -25,16 +25,15 @@ module RBI
25
25
  # end
26
26
  # ~~~
27
27
  class FlattenVisibilities < Visitor
28
- extend T::Sig
29
-
30
- sig { void }
28
+ #: -> void
31
29
  def initialize
32
30
  super
33
31
 
34
32
  @current_visibility = T.let([Public.new], T::Array[Visibility])
35
33
  end
36
34
 
37
- sig { override.params(node: T.nilable(Node)).void }
35
+ # @override
36
+ #: (Node? node) -> void
38
37
  def visit(node)
39
38
  return unless node
40
39
 
@@ -54,9 +53,7 @@ module RBI
54
53
  end
55
54
 
56
55
  class Tree
57
- extend T::Sig
58
-
59
- sig { void }
56
+ #: -> void
60
57
  def flatten_visibilities!
61
58
  visitor = Rewriters::FlattenVisibilities.new
62
59
  visitor.visit(self)
@@ -6,9 +6,8 @@ module RBI
6
6
 
7
7
  module Rewriters
8
8
  class GroupNodes < Visitor
9
- extend T::Sig
10
-
11
- sig { override.params(node: T.nilable(Node)).void }
9
+ # @override
10
+ #: (Node? node) -> void
12
11
  def visit(node)
13
12
  return unless node
14
13
 
@@ -32,7 +31,7 @@ module RBI
32
31
 
33
32
  private
34
33
 
35
- sig { params(node: Node).returns(Group::Kind) }
34
+ #: (Node node) -> Group::Kind
36
35
  def group_kind(node)
37
36
  case node
38
37
  when Group
@@ -75,9 +74,7 @@ module RBI
75
74
  end
76
75
 
77
76
  class Tree
78
- extend T::Sig
79
-
80
- sig { void }
77
+ #: -> void
81
78
  def group_nodes!
82
79
  visitor = Rewriters::GroupNodes.new
83
80
  visitor.visit(self)
@@ -85,12 +82,10 @@ module RBI
85
82
  end
86
83
 
87
84
  class Group < Tree
88
- extend T::Sig
89
-
90
- sig { returns(Kind) }
85
+ #: Kind
91
86
  attr_reader :kind
92
87
 
93
- sig { params(kind: Kind).void }
88
+ #: (Kind kind) -> void
94
89
  def initialize(kind)
95
90
  super()
96
91
  @kind = kind