rbi 0.3.0 → 0.3.2

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.
@@ -67,8 +67,8 @@ module RBI
67
67
  @left_name = left_name
68
68
  @right_name = right_name
69
69
  @keep = keep
70
- @tree = T.let(MergeTree.new, MergeTree)
71
- @scope_stack = T.let([@tree], T::Array[Tree])
70
+ @tree = MergeTree.new #: MergeTree
71
+ @scope_stack = [@tree] #: Array[Tree]
72
72
  end
73
73
 
74
74
  #: (Tree tree) -> void
@@ -99,12 +99,12 @@ module RBI
99
99
  def initialize(output, left_name: "left", right_name: "right", keep: Keep::NONE)
100
100
  super()
101
101
  @tree = output
102
- @index = T.let(output.index, Index)
103
- @scope_stack = T.let([@tree], T::Array[Tree])
102
+ @index = output.index #: Index
103
+ @scope_stack = [@tree] #: Array[Tree]
104
104
  @left_name = left_name
105
105
  @right_name = right_name
106
106
  @keep = keep
107
- @conflicts = T.let([], T::Array[Conflict])
107
+ @conflicts = [] #: Array[Conflict]
108
108
  end
109
109
 
110
110
  # @override
@@ -159,7 +159,7 @@ module RBI
159
159
 
160
160
  #: -> Tree
161
161
  def current_scope
162
- T.must(@scope_stack.last)
162
+ @scope_stack.last #: as !nil
163
163
  end
164
164
 
165
165
  #: (Node node) -> Node?
@@ -245,7 +245,7 @@ module RBI
245
245
  # @override
246
246
  #: (Array[Node] nodes) -> void
247
247
  def visit_all(nodes)
248
- last_conflict_tree = T.let(nil, T.nilable(ConflictTree))
248
+ last_conflict_tree = nil #: ConflictTree?
249
249
  nodes.dup.each do |node|
250
250
  if node.is_a?(ConflictTree)
251
251
  if last_conflict_tree
@@ -287,7 +287,7 @@ module RBI
287
287
 
288
288
  #: -> ConflictTree?
289
289
  def parent_conflict_tree
290
- parent = T.let(parent_tree, T.nilable(Node))
290
+ parent = parent_tree #: Node?
291
291
  while parent
292
292
  return parent if parent.is_a?(ConflictTree)
293
293
 
@@ -555,9 +555,9 @@ module RBI
555
555
  super()
556
556
  @left_name = left_name
557
557
  @right_name = right_name
558
- @left = T.let(Tree.new, Tree)
558
+ @left = Tree.new #: Tree
559
559
  @left.parent_tree = self
560
- @right = T.let(Tree.new, Tree)
560
+ @right = Tree.new #: Tree
561
561
  @right.parent_tree = self
562
562
  end
563
563
  end
@@ -24,7 +24,7 @@ module RBI
24
24
  def initialize
25
25
  super
26
26
 
27
- @top_level_object_class = T.let(nil, T.nilable(Class))
27
+ @top_level_object_class = nil #: Class?
28
28
  end
29
29
 
30
30
  # @override
@@ -53,7 +53,7 @@ module RBI
53
53
  def initialize(index)
54
54
  super()
55
55
  @index = index
56
- @operations = T.let([], T::Array[Operation])
56
+ @operations = [] #: Array[Operation]
57
57
  end
58
58
 
59
59
  class << self
@@ -107,10 +107,10 @@ module RBI
107
107
  when Scope
108
108
  node.empty?
109
109
  when Attr
110
- previous = T.cast(previous, Attr)
110
+ previous = previous #: as Attr
111
111
  node.names == previous.names && node.sigs == previous.sigs
112
112
  when Method
113
- previous = T.cast(previous, Method)
113
+ previous = previous #: as Method
114
114
  node.params == previous.params && node.sigs == previous.sigs
115
115
  else
116
116
  true
@@ -31,7 +31,9 @@ module RBI
31
31
  next res if res && res != 0 # we can sort the nodes by their name, let's stop here
32
32
 
33
33
  # Finally, if the two nodes have the same rank and the same name or at least one node is anonymous then,
34
- T.must(original_order[a]) <=> T.must(original_order[b]) # we keep the original order
34
+ original_order_a = original_order[a] #: as !nil
35
+ original_order_b = original_order[b] #: as !nil
36
+ original_order_a <=> original_order_b # we keep the original order
35
37
  end
36
38
  end
37
39
 
@@ -35,7 +35,7 @@ module RBI
35
35
  comments = node.comments.dup
36
36
  node.comments.clear
37
37
 
38
- rbs_sigs = T.let([], T::Array[RBSComment])
38
+ rbs_sigs = [] #: Array[RBSComment]
39
39
 
40
40
  comments.each do |comment|
41
41
  case comment
@@ -67,7 +67,7 @@ module RBI
67
67
  raise Error, "AttrWriter must have exactly one name"
68
68
  end
69
69
 
70
- name = T.must(node.names.first)
70
+ name = node.names.first #: as !nil
71
71
  sig.params << SigParam.new(name.to_s, RBS::TypeTranslator.translate(attr_type))
72
72
  end
73
73
 
data/lib/rbi/type.rb CHANGED
@@ -285,7 +285,7 @@ module RBI
285
285
  def initialize(name, *params)
286
286
  super()
287
287
  @name = name
288
- @params = T.let(params, T::Array[Type])
288
+ @params = params #: Array[Type]
289
289
  end
290
290
 
291
291
  # @override
@@ -395,9 +395,9 @@ module RBI
395
395
  #: -> void
396
396
  def initialize
397
397
  super
398
- @proc_params = T.let({}, T::Hash[Symbol, Type])
399
- @proc_returns = T.let(Type.void, Type)
400
- @proc_bind = T.let(nil, T.nilable(Type))
398
+ @proc_params = {} #: Hash[Symbol, Type]
399
+ @proc_returns = Type.void #: Type
400
+ @proc_bind = nil #: Type?
401
401
  end
402
402
 
403
403
  # @override
@@ -570,7 +570,7 @@ module RBI
570
570
  end.uniq
571
571
 
572
572
  if flattened.size == 1
573
- T.must(flattened.first)
573
+ flattened.first #: as !nil
574
574
  else
575
575
  raise ArgumentError, "RBI::Type.all should have at least 2 types supplied" if flattened.size < 2
576
576
 
@@ -596,7 +596,7 @@ module RBI
596
596
  end
597
597
  end
598
598
 
599
- is_nilable = T.let(false, T::Boolean)
599
+ is_nilable = false #: bool
600
600
 
601
601
  types = flattened.filter_map do |type|
602
602
  case type
@@ -632,7 +632,7 @@ module RBI
632
632
  raise ArgumentError, "RBI::Type.any should have at least 2 types supplied"
633
633
  end
634
634
  when 1
635
- T.must(types.first)
635
+ types.first #: as !nil
636
636
  else
637
637
  Any.new(types)
638
638
  end
@@ -693,7 +693,7 @@ module RBI
693
693
 
694
694
  #: -> void
695
695
  def initialize
696
- @nilable = T.let(false, T::Boolean)
696
+ @nilable = false #: bool
697
697
  end
698
698
 
699
699
  # Returns a new type that is `nilable` if it is not already.
@@ -18,7 +18,7 @@ module RBI
18
18
  raise Error, "Expected a type expression, got nothing" if node.statements.body.empty?
19
19
  raise Error, "Expected a single type expression, got `#{node.slice}`" if node.statements.body.size > 1
20
20
 
21
- node = T.must(node.statements.body.first)
21
+ node = node.statements.body.first #: as !nil
22
22
  parse_node(node)
23
23
  end
24
24
 
@@ -40,7 +40,9 @@ module RBI
40
40
  children = body.body
41
41
  raise Error, "Expected exactly 1 child, got #{children.size}" unless children.size == 1
42
42
 
43
- parse_node(T.must(children.first))
43
+ parse_node(
44
+ children.first, #: as !nil
45
+ )
44
46
  else
45
47
  raise Error, "Unexpected node `#{node}`"
46
48
  end
@@ -84,7 +86,11 @@ module RBI
84
86
  if t_class?(recv)
85
87
  # `T::Class[Foo]` or `::T::Class[Foo]`
86
88
  args = check_arguments_exactly!(node, 1)
87
- return Type::Class.new(parse_node(T.must(args.first)))
89
+ return Type::Class.new(
90
+ parse_node(
91
+ args.first, #: as !nil
92
+ ),
93
+ )
88
94
  else
89
95
  # `::Foo[Bar]` or `::Foo[Bar, Baz]`
90
96
  args = check_arguments_at_least!(node, 1)
@@ -94,11 +100,15 @@ module RBI
94
100
  # `T.class_of(Foo)[Bar]`
95
101
  if t_class_of?(recv)
96
102
  type_args = check_arguments_exactly!(recv, 1)
97
- type = parse_node(T.must(type_args.first))
103
+ type = parse_node(
104
+ type_args.first, #: as !nil
105
+ )
98
106
  raise Error, "Expected a simple type, got `#{type}`" unless type.is_a?(Type::Simple)
99
107
 
100
108
  type_param_args = check_arguments_exactly!(node, 1)
101
- type_param = parse_node(T.must(type_param_args.first))
109
+ type_param = parse_node(
110
+ type_param_args.first, #: as !nil
111
+ )
102
112
  return Type::ClassOf.new(type, type_param)
103
113
  end
104
114
  end
@@ -117,7 +127,9 @@ module RBI
117
127
  when :nilable
118
128
  # `T.nilable(Foo)`
119
129
  args = check_arguments_exactly!(node, 1)
120
- type = parse_node(T.must(args.first))
130
+ type = parse_node(
131
+ args.first, #: as !nil
132
+ )
121
133
  Type::Nilable.new(type)
122
134
  when :anything
123
135
  # `T.anything`
@@ -142,7 +154,9 @@ module RBI
142
154
  when :class_of
143
155
  # `T.class_of(Foo)`
144
156
  args = check_arguments_exactly!(node, 1)
145
- type = parse_node(T.must(args.first))
157
+ type = parse_node(
158
+ args.first, #: as !nil
159
+ )
146
160
  raise Error, "Expected a simple type, got `#{type}`" unless type.is_a?(Type::Simple)
147
161
 
148
162
  Type::ClassOf.new(type)
@@ -180,7 +194,9 @@ module RBI
180
194
  elem_key = elem.key
181
195
  key = case elem_key
182
196
  when Prism::SymbolNode
183
- T.must(elem_key.value).to_sym
197
+ elem_key
198
+ .value #: as !nil
199
+ .to_sym
184
200
  when Prism::StringNode
185
201
  elem_key.content
186
202
  else
@@ -216,14 +232,22 @@ module RBI
216
232
  T.unsafe(type).params(**params)
217
233
  when :returns
218
234
  args = check_arguments_exactly!(call, 1)
219
- type.returns(parse_node(T.must(args.first)))
235
+ type.returns(
236
+ parse_node(
237
+ args.first, #: as !nil
238
+ ),
239
+ )
220
240
  when :void
221
241
  type.void
222
242
  when :proc
223
243
  return type
224
244
  when :bind
225
245
  args = check_arguments_exactly!(call, 1)
226
- type.bind(parse_node(T.must(args.first)))
246
+ type.bind(
247
+ parse_node(
248
+ args.first, #: as !nil
249
+ ),
250
+ )
227
251
  else
228
252
  raise Error, "Unexpected expression `#{node.slice}`"
229
253
  end
@@ -261,8 +285,8 @@ module RBI
261
285
 
262
286
  #: (Prism::CallNode node) -> Array[Prism::Node]
263
287
  def call_chain(node)
264
- call_chain = T.let([node], T::Array[Prism::Node])
265
- receiver = T.let(node.receiver, T.nilable(Prism::Node))
288
+ call_chain = [node] #: Array[Prism::Node]
289
+ receiver = node.receiver #: Prism::Node?
266
290
  while receiver
267
291
  call_chain.prepend(receiver)
268
292
  break unless receiver.is_a?(Prism::CallNode)
data/lib/rbi/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module RBI
5
- VERSION = "0.3.0"
5
+ VERSION = "0.3.2"
6
6
  end
data/lib/rbi/visitor.rb CHANGED
@@ -88,6 +88,8 @@ module RBI
88
88
  visit_sig(node)
89
89
  when SigParam
90
90
  visit_sig_param(node)
91
+ when TEnumValue
92
+ visit_tenum_value(node)
91
93
  when TStructConst
92
94
  visit_tstruct_const(node)
93
95
  when TStructProp
@@ -222,6 +224,9 @@ module RBI
222
224
  #: (TEnumBlock node) -> void
223
225
  def visit_tenum_block(node); end
224
226
 
227
+ #: (TEnumValue node) -> void
228
+ def visit_tenum_value(node); end
229
+
225
230
  #: (Helper node) -> void
226
231
  def visit_helper(node); end
227
232