rbs 3.9.2 → 4.0.0.dev.1

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -1
  3. data/.github/workflows/windows.yml +1 -1
  4. data/CHANGELOG.md +0 -13
  5. data/Rakefile +28 -21
  6. data/Steepfile +1 -0
  7. data/config.yml +232 -62
  8. data/ext/rbs_extension/ast_translation.c +1149 -0
  9. data/ext/rbs_extension/ast_translation.h +30 -0
  10. data/{src/constants.c → ext/rbs_extension/class_constants.c} +15 -1
  11. data/{include/rbs/constants.h → ext/rbs_extension/class_constants.h} +10 -1
  12. data/ext/rbs_extension/extconf.rb +3 -1
  13. data/ext/rbs_extension/{location.c → legacy_location.c} +25 -34
  14. data/ext/rbs_extension/legacy_location.h +40 -0
  15. data/ext/rbs_extension/main.c +402 -8
  16. data/ext/rbs_extension/rbs_extension.h +3 -21
  17. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  18. data/ext/rbs_extension/rbs_string_bridging.h +20 -0
  19. data/include/rbs/ast.h +748 -0
  20. data/include/rbs/defines.h +60 -0
  21. data/{ext/rbs_extension → include/rbs}/lexer.h +40 -32
  22. data/include/rbs/location.h +59 -0
  23. data/include/rbs/parser.h +151 -0
  24. data/include/rbs/string.h +49 -0
  25. data/include/rbs/util/rbs_allocator.h +38 -0
  26. data/include/rbs/util/rbs_assert.h +9 -0
  27. data/include/rbs/util/rbs_buffer.h +83 -0
  28. data/include/rbs/util/rbs_constant_pool.h +3 -64
  29. data/include/rbs/util/rbs_encoding.h +280 -0
  30. data/include/rbs/util/rbs_unescape.h +23 -0
  31. data/include/rbs.h +1 -2
  32. data/lib/rbs/annotate/formatter.rb +3 -13
  33. data/lib/rbs/annotate/rdoc_annotator.rb +3 -1
  34. data/lib/rbs/annotate/rdoc_source.rb +1 -1
  35. data/lib/rbs/ast/ruby/annotations.rb +119 -0
  36. data/lib/rbs/ast/ruby/comment_block.rb +221 -0
  37. data/lib/rbs/ast/ruby/declarations.rb +86 -0
  38. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +24 -0
  39. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  40. data/lib/rbs/ast/ruby/members.rb +213 -0
  41. data/lib/rbs/buffer.rb +104 -24
  42. data/lib/rbs/cli/validate.rb +39 -34
  43. data/lib/rbs/cli.rb +4 -5
  44. data/lib/rbs/definition.rb +6 -1
  45. data/lib/rbs/definition_builder/ancestor_builder.rb +63 -60
  46. data/lib/rbs/definition_builder/method_builder.rb +45 -30
  47. data/lib/rbs/definition_builder.rb +44 -9
  48. data/lib/rbs/environment/class_entry.rb +69 -0
  49. data/lib/rbs/environment/module_entry.rb +66 -0
  50. data/lib/rbs/environment.rb +185 -154
  51. data/lib/rbs/environment_loader.rb +2 -2
  52. data/lib/rbs/errors.rb +4 -3
  53. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  54. data/lib/rbs/inline_parser.rb +206 -0
  55. data/lib/rbs/location_aux.rb +35 -3
  56. data/lib/rbs/parser_aux.rb +11 -1
  57. data/lib/rbs/prototype/runtime.rb +2 -2
  58. data/lib/rbs/source.rb +99 -0
  59. data/lib/rbs/subtractor.rb +4 -3
  60. data/lib/rbs/version.rb +1 -1
  61. data/lib/rbs.rb +12 -0
  62. data/lib/rdoc/discover.rb +1 -1
  63. data/lib/rdoc_plugin/parser.rb +2 -2
  64. data/rbs.gemspec +1 -0
  65. data/sig/ancestor_builder.rbs +1 -1
  66. data/sig/annotate/formatter.rbs +2 -2
  67. data/sig/annotate/rdoc_annotater.rbs +1 -1
  68. data/sig/ast/ruby/annotations.rbs +110 -0
  69. data/sig/ast/ruby/comment_block.rbs +119 -0
  70. data/sig/ast/ruby/declarations.rbs +60 -0
  71. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  72. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  73. data/sig/ast/ruby/members.rbs +72 -0
  74. data/sig/buffer.rbs +63 -5
  75. data/sig/definition.rbs +1 -0
  76. data/sig/definition_builder.rbs +1 -1
  77. data/sig/environment/class_entry.rbs +50 -0
  78. data/sig/environment/module_entry.rbs +50 -0
  79. data/sig/environment.rbs +22 -76
  80. data/sig/errors.rbs +13 -6
  81. data/sig/inline_parser/comment_association.rbs +71 -0
  82. data/sig/inline_parser.rbs +87 -0
  83. data/sig/location.rbs +32 -7
  84. data/sig/method_builder.rbs +7 -4
  85. data/sig/parser.rbs +16 -0
  86. data/sig/source.rbs +48 -0
  87. data/src/ast.c +1345 -0
  88. data/src/lexer.c +2867 -0
  89. data/src/lexer.re +151 -0
  90. data/{ext/rbs_extension → src}/lexstate.c +58 -42
  91. data/src/location.c +71 -0
  92. data/src/parser.c +3739 -0
  93. data/src/string.c +89 -0
  94. data/src/util/rbs_allocator.c +149 -0
  95. data/src/util/rbs_assert.c +19 -0
  96. data/src/util/rbs_buffer.c +54 -0
  97. data/src/util/rbs_constant_pool.c +13 -81
  98. data/src/util/rbs_encoding.c +5273 -0
  99. data/src/util/rbs_unescape.c +130 -0
  100. data/stdlib/rdoc/0/code_object.rbs +2 -2
  101. data/stdlib/rdoc/0/comment.rbs +2 -0
  102. data/stdlib/rdoc/0/options.rbs +76 -0
  103. data/stdlib/rdoc/0/rdoc.rbs +6 -4
  104. data/stdlib/rdoc/0/store.rbs +1 -1
  105. metadata +70 -17
  106. data/ext/rbs_extension/lexer.c +0 -2728
  107. data/ext/rbs_extension/lexer.re +0 -147
  108. data/ext/rbs_extension/location.h +0 -85
  109. data/ext/rbs_extension/parser.c +0 -2982
  110. data/ext/rbs_extension/parser.h +0 -18
  111. data/ext/rbs_extension/parserstate.c +0 -411
  112. data/ext/rbs_extension/parserstate.h +0 -163
  113. data/ext/rbs_extension/unescape.c +0 -32
  114. data/include/rbs/ruby_objs.h +0 -72
  115. data/src/ruby_objs.c +0 -799
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 170d86a49dcb384a18b08feffedd7ff3edef07ff08305c566f84f613765af36d
4
- data.tar.gz: '09975862bee26d90936c89c7d461c992829665b866053551ff02bd7a679ebd26'
3
+ metadata.gz: d0f208999624a32e97044b8427ec19fa233e21a530a6383efe4ea5b9333ab1ce
4
+ data.tar.gz: d03954e5a4fa29a428085183a90a86b481849b0994e0d454cccca395412a31f0
5
5
  SHA512:
6
- metadata.gz: 653e269661b10cce36470bf51163e2ecb056bd9a1714de6c9a6aeb2d3d659b95a73460737b74328fd594cdf6455ee3a90308d63898a447ddc99d8e36b10b9733
7
- data.tar.gz: 27fe334fe021669723ad96918d6c01543cfe93b64217229668b7a77182df3c4fde89f4c98bb55577b0b12dc04658bfb735a3813f5d56c0f6b951fe6a8d993edb
6
+ metadata.gz: 56da6e8a6a9336ae251d766b85c0d8ab62b42a8df1f1c828cd8f0c0ce898ac639a024c5b819e2e6a85733fa1d140ca5b06fc61de62b36fdb21074d34710bb003
7
+ data.tar.gz: de3ac4191be3ec60ab8bd25c4653cc2663effc2004c9d5e33d9fbb6eabace99fa883dfd5201d92c7f574d8730a74116867a853cb525343a639aeef6d0dd6d041
@@ -83,7 +83,7 @@ jobs:
83
83
  valgrind:
84
84
  runs-on: ubuntu-latest
85
85
  steps:
86
- - uses: actions/checkout@v2
86
+ - uses: actions/checkout@v4
87
87
  - uses: ruby/setup-ruby@v1
88
88
  with:
89
89
  ruby-version: "3.4"
@@ -33,7 +33,7 @@ jobs:
33
33
 
34
34
  res = URI.parse("https://stdgems.org/bundled_gems.json").read
35
35
  bundled_gems = JSON.parse(res)["gems"].map{_1["gem"]}
36
- system "gem uninstall --force #{bundled_gems.join(" ")}", exception: true
36
+ system "gem uninstall #{bundled_gems.join(" ")} --force", exception: true
37
37
  '
38
38
  - name: bundle install
39
39
  run: |
data/CHANGELOG.md CHANGED
@@ -1,18 +1,5 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 3.9.2 (2025-03-31)
4
-
5
- ### Library changes
6
-
7
- * Change `{}` to `{ 0 }` ([#2354](https://github.com/ruby/rbs/pull/2354))
8
-
9
- ## 3.9.1 (2025-03-24)
10
-
11
- ### Miscellaneous
12
-
13
- * `did_you_mean` is a default gem ([#2348](https://github.com/ruby/rbs/pull/2348))
14
- * Skip loading ruby_memcheck ([#2347](https://github.com/ruby/rbs/pull/2347))
15
-
16
3
  ## 3.9.0 (2025-03-18)
17
4
 
18
5
  ### Miscellaneous
data/Rakefile CHANGED
@@ -36,12 +36,12 @@ end
36
36
  multitask :default => [:test, :stdlib_test, :typecheck_test, :rubocop, :validate, :test_doc]
37
37
 
38
38
  task :lexer do
39
- sh "re2c -W --no-generation-date -o ext/rbs_extension/lexer.c ext/rbs_extension/lexer.re"
39
+ sh "re2c -W --no-generation-date -o src/lexer.c src/lexer.re"
40
40
  end
41
41
 
42
42
  task :confirm_lexer => :lexer do
43
43
  puts "Testing if lexer.c is updated with respect to lexer.re"
44
- sh "git diff --exit-code ext/rbs_extension/lexer.c"
44
+ sh "git diff --exit-code src/lexer.c"
45
45
  end
46
46
 
47
47
  task :confirm_templates => :templates do
@@ -70,17 +70,19 @@ task :confirm_annotation do
70
70
  end
71
71
 
72
72
  task :templates do
73
- sh "#{ruby} templates/template.rb include/rbs/constants.h"
74
- sh "#{ruby} templates/template.rb include/rbs/ruby_objs.h"
75
- sh "#{ruby} templates/template.rb src/constants.c"
76
- sh "#{ruby} templates/template.rb src/ruby_objs.c"
73
+ sh "#{ruby} templates/template.rb ext/rbs_extension/ast_translation.h"
74
+ sh "#{ruby} templates/template.rb ext/rbs_extension/ast_translation.c"
75
+
76
+ sh "#{ruby} templates/template.rb ext/rbs_extension/class_constants.h"
77
+ sh "#{ruby} templates/template.rb ext/rbs_extension/class_constants.c"
78
+
79
+ sh "#{ruby} templates/template.rb include/rbs/ast.h"
80
+ sh "#{ruby} templates/template.rb src/ast.c"
77
81
  end
78
82
 
79
- task :compile => "ext/rbs_extension/lexer.c"
80
- task :compile => "include/rbs/constants.h"
81
- task :compile => "include/rbs/ruby_objs.h"
82
- task :compile => "src/constants.c"
83
- task :compile => "src/ruby_objs.c"
83
+ task :compile => "ext/rbs_extension/class_constants.h"
84
+ task :compile => "ext/rbs_extension/class_constants.c"
85
+ task :compile => "src/lexer.c"
84
86
 
85
87
  task :test_doc do
86
88
  files = Dir.chdir(File.expand_path('..', __FILE__)) do
@@ -141,16 +143,21 @@ task :stdlib_test => :compile do
141
143
  end
142
144
 
143
145
  task :typecheck_test => :compile do
144
- FileList["test/typecheck/*"].each do |test|
145
- Dir.chdir(test) do
146
- expectations = File.join(test, "steep_expectations.yml")
147
- if File.exist?(expectations)
148
- sh "steep check --with_expectations"
149
- else
150
- sh "steep check"
151
- end
152
- end
153
- end
146
+ puts
147
+ puts
148
+ puts "⛔️⛔️⛔️⛔️⛔️⛔️ Skipping type check test because RBS is incompatible with Steep (#{__FILE__}:#{__LINE__})"
149
+ puts
150
+ puts
151
+ # FileList["test/typecheck/*"].each do |test|
152
+ # Dir.chdir(test) do
153
+ # expectations = File.join(test, "steep_expectations.yml")
154
+ # if File.exist?(expectations)
155
+ # sh "steep check --with_expectations"
156
+ # else
157
+ # sh "steep check"
158
+ # end
159
+ # end
160
+ # end
154
161
  end
155
162
 
156
163
  task :raap => :compile do
data/Steepfile CHANGED
@@ -9,6 +9,7 @@ target :lib do
9
9
  )
10
10
 
11
11
  library "pathname", "json", "logger", "monitor", "tsort", "uri", 'dbm', 'pstore', 'singleton', 'shellwords', 'fileutils', 'find', 'digest', 'prettyprint', 'yaml', "psych", "securerandom"
12
+ library "prism"
12
13
  signature "stdlib/strscan/0/"
13
14
  signature "stdlib/optparse/0/"
14
15
  signature "stdlib/rdoc/0/"
data/config.yml CHANGED
@@ -2,316 +2,486 @@ nodes:
2
2
  - name: RBS::AST::Annotation
3
3
  fields:
4
4
  - name: string
5
- - name: location
5
+ c_type: rbs_string
6
+ - name: RBS::AST::Bool
7
+ expose_to_ruby: false
8
+ expose_location: false
9
+ fields:
10
+ - name: value
11
+ c_type: bool
6
12
  - name: RBS::AST::Comment
7
13
  fields:
8
14
  - name: string
9
- - name: location
15
+ c_type: rbs_string
10
16
  - name: RBS::AST::Declarations::Class
11
17
  fields:
12
18
  - name: name
19
+ c_type: rbs_type_name
13
20
  - name: type_params
21
+ c_type: rbs_node_list
14
22
  - name: super_class
23
+ c_type: rbs_ast_declarations_class_super
15
24
  - name: members
25
+ c_type: rbs_node_list
16
26
  - name: annotations
17
- - name: location
27
+ c_type: rbs_node_list
18
28
  - name: comment
29
+ c_type: rbs_ast_comment
19
30
  - name: RBS::AST::Declarations::Class::Super
20
31
  fields:
21
32
  - name: name
33
+ c_type: rbs_type_name
22
34
  - name: args
23
- - name: location
35
+ c_type: rbs_node_list
24
36
  - name: RBS::AST::Declarations::ClassAlias
25
37
  fields:
26
38
  - name: new_name
39
+ c_type: rbs_type_name
27
40
  - name: old_name
28
- - name: location
41
+ c_type: rbs_type_name
29
42
  - name: comment
43
+ c_type: rbs_ast_comment
30
44
  - name: annotations
45
+ c_type: rbs_node_list
31
46
  - name: RBS::AST::Declarations::Constant
32
47
  fields:
33
48
  - name: name
49
+ c_type: rbs_type_name
34
50
  - name: type
35
- - name: location
51
+ c_type: rbs_node
36
52
  - name: comment
53
+ c_type: rbs_ast_comment
37
54
  - name: annotations
55
+ c_type: rbs_node_list
38
56
  - name: RBS::AST::Declarations::Global
39
57
  fields:
40
58
  - name: name
59
+ c_type: rbs_ast_symbol
41
60
  - name: type
42
- - name: location
61
+ c_type: rbs_node
43
62
  - name: comment
63
+ c_type: rbs_ast_comment
44
64
  - name: annotations
65
+ c_type: rbs_node_list
45
66
  - name: RBS::AST::Declarations::Interface
46
67
  fields:
47
68
  - name: name
69
+ c_type: rbs_type_name
48
70
  - name: type_params
71
+ c_type: rbs_node_list
49
72
  - name: members
73
+ c_type: rbs_node_list
50
74
  - name: annotations
51
- - name: location
75
+ c_type: rbs_node_list
52
76
  - name: comment
77
+ c_type: rbs_ast_comment
53
78
  - name: RBS::AST::Declarations::Module
54
79
  fields:
55
80
  - name: name
81
+ c_type: rbs_type_name
56
82
  - name: type_params
83
+ c_type: rbs_node_list
57
84
  - name: self_types
85
+ c_type: rbs_node_list
58
86
  - name: members
87
+ c_type: rbs_node_list
59
88
  - name: annotations
60
- - name: location
89
+ c_type: rbs_node_list
61
90
  - name: comment
91
+ c_type: rbs_ast_comment
62
92
  - name: RBS::AST::Declarations::Module::Self
63
93
  fields:
64
94
  - name: name
95
+ c_type: rbs_type_name
65
96
  - name: args
66
- - name: location
97
+ c_type: rbs_node_list
67
98
  - name: RBS::AST::Declarations::ModuleAlias
68
99
  fields:
69
100
  - name: new_name
101
+ c_type: rbs_type_name
70
102
  - name: old_name
71
- - name: location
103
+ c_type: rbs_type_name
72
104
  - name: comment
105
+ c_type: rbs_ast_comment
73
106
  - name: annotations
107
+ c_type: rbs_node_list
74
108
  - name: RBS::AST::Declarations::TypeAlias
75
109
  fields:
76
110
  - name: name
111
+ c_type: rbs_type_name
77
112
  - name: type_params
113
+ c_type: rbs_node_list
78
114
  - name: type
115
+ c_type: rbs_node
79
116
  - name: annotations
80
- - name: location
117
+ c_type: rbs_node_list
81
118
  - name: comment
119
+ c_type: rbs_ast_comment
82
120
  - name: RBS::AST::Directives::Use
83
121
  fields:
84
122
  - name: clauses
85
- - name: location
123
+ c_type: rbs_node_list
86
124
  - name: RBS::AST::Directives::Use::SingleClause
87
125
  fields:
88
126
  - name: type_name
127
+ c_type: rbs_type_name
89
128
  - name: new_name
90
- - name: location
129
+ c_type: rbs_ast_symbol
91
130
  - name: RBS::AST::Directives::Use::WildcardClause
92
131
  fields:
93
132
  - name: namespace
94
- - name: location
133
+ c_type: rbs_namespace
134
+ c_name: rbs_namespace
95
135
  - name: RBS::AST::Members::Alias
96
136
  fields:
97
137
  - name: new_name
138
+ c_type: rbs_ast_symbol
98
139
  - name: old_name
140
+ c_type: rbs_ast_symbol
99
141
  - name: kind
142
+ c_type: rbs_keyword
100
143
  - name: annotations
101
- - name: location
144
+ c_type: rbs_node_list
102
145
  - name: comment
146
+ c_type: rbs_ast_comment
103
147
  - name: RBS::AST::Members::AttrAccessor
104
148
  fields:
105
149
  - name: name
150
+ c_type: rbs_ast_symbol
106
151
  - name: type
152
+ c_type: rbs_node
107
153
  - name: ivar_name
154
+ c_type: rbs_node # rbs_ast_symbol_t, NULL or rbs_ast_bool_new(false)
108
155
  - name: kind
156
+ c_type: rbs_keyword
109
157
  - name: annotations
110
- - name: location
158
+ c_type: rbs_node_list
111
159
  - name: comment
160
+ c_type: rbs_ast_comment
112
161
  - name: visibility
162
+ c_type: rbs_keyword
113
163
  - name: RBS::AST::Members::AttrReader
114
164
  fields:
115
165
  - name: name
166
+ c_type: rbs_ast_symbol
116
167
  - name: type
168
+ c_type: rbs_node
117
169
  - name: ivar_name
170
+ c_type: rbs_node # rbs_ast_symbol_t, NULL or rbs_ast_bool_new(false)
118
171
  - name: kind
172
+ c_type: rbs_keyword
119
173
  - name: annotations
120
- - name: location
174
+ c_type: rbs_node_list
121
175
  - name: comment
176
+ c_type: rbs_ast_comment
122
177
  - name: visibility
178
+ c_type: rbs_keyword
123
179
  - name: RBS::AST::Members::AttrWriter
124
180
  fields:
125
181
  - name: name
182
+ c_type: rbs_ast_symbol
126
183
  - name: type
184
+ c_type: rbs_node
127
185
  - name: ivar_name
186
+ c_type: rbs_node # rbs_ast_symbol_t, NULL or rbs_ast_bool_new(false)
128
187
  - name: kind
188
+ c_type: rbs_keyword
129
189
  - name: annotations
130
- - name: location
190
+ c_type: rbs_node_list
131
191
  - name: comment
192
+ c_type: rbs_ast_comment
132
193
  - name: visibility
194
+ c_type: rbs_keyword
133
195
  - name: RBS::AST::Members::ClassInstanceVariable
134
196
  fields:
135
197
  - name: name
198
+ c_type: rbs_ast_symbol
136
199
  - name: type
137
- - name: location
200
+ c_type: rbs_node
138
201
  - name: comment
202
+ c_type: rbs_ast_comment
139
203
  - name: RBS::AST::Members::ClassVariable
140
204
  fields:
141
205
  - name: name
206
+ c_type: rbs_ast_symbol
142
207
  - name: type
143
- - name: location
208
+ c_type: rbs_node
144
209
  - name: comment
210
+ c_type: rbs_ast_comment
145
211
  - name: RBS::AST::Members::Extend
146
212
  fields:
147
213
  - name: name
214
+ c_type: rbs_type_name
148
215
  - name: args
216
+ c_type: rbs_node_list
149
217
  - name: annotations
150
- - name: location
218
+ c_type: rbs_node_list
151
219
  - name: comment
220
+ c_type: rbs_ast_comment
152
221
  - name: RBS::AST::Members::Include
153
222
  fields:
154
223
  - name: name
224
+ c_type: rbs_type_name
155
225
  - name: args
226
+ c_type: rbs_node_list
156
227
  - name: annotations
157
- - name: location
228
+ c_type: rbs_node_list
158
229
  - name: comment
230
+ c_type: rbs_ast_comment
159
231
  - name: RBS::AST::Members::InstanceVariable
160
232
  fields:
161
233
  - name: name
234
+ c_type: rbs_ast_symbol
162
235
  - name: type
163
- - name: location
236
+ c_type: rbs_node
164
237
  - name: comment
238
+ c_type: rbs_ast_comment
165
239
  - name: RBS::AST::Members::MethodDefinition
166
240
  fields:
167
241
  - name: name
242
+ c_type: rbs_ast_symbol
168
243
  - name: kind
244
+ c_type: rbs_keyword
169
245
  - name: overloads
246
+ c_type: rbs_node_list
170
247
  - name: annotations
171
- - name: location
248
+ c_type: rbs_node_list
172
249
  - name: comment
250
+ c_type: rbs_ast_comment
173
251
  - name: overloading
252
+ c_type: bool
174
253
  - name: visibility
254
+ c_type: rbs_keyword
175
255
  - name: RBS::AST::Members::MethodDefinition::Overload
256
+ expose_location: false
176
257
  fields:
177
258
  - name: annotations
259
+ c_type: rbs_node_list
178
260
  - name: method_type
261
+ c_type: rbs_node
179
262
  - name: RBS::AST::Members::Prepend
180
263
  fields:
181
264
  - name: name
265
+ c_type: rbs_type_name
182
266
  - name: args
267
+ c_type: rbs_node_list
183
268
  - name: annotations
184
- - name: location
269
+ c_type: rbs_node_list
185
270
  - name: comment
271
+ c_type: rbs_ast_comment
186
272
  - name: RBS::AST::Members::Private
187
- fields:
188
- - name: location
189
273
  - name: RBS::AST::Members::Public
190
- fields:
191
- - name: location
192
274
  - name: RBS::AST::TypeParam
193
275
  fields:
194
276
  - name: name
277
+ c_type: rbs_ast_symbol
195
278
  - name: variance
279
+ c_type: rbs_keyword
196
280
  - name: upper_bound
281
+ c_type: rbs_node
197
282
  - name: default_type
283
+ c_type: rbs_node
198
284
  - name: unchecked
199
- - name: location
285
+ c_type: bool
286
+ - name: RBS::AST::Integer
287
+ expose_to_ruby: false
288
+ expose_location: false
289
+ fields:
290
+ - name: string_representation
291
+ c_type: rbs_string
292
+ - name: RBS::AST::String
293
+ expose_to_ruby: false
294
+ expose_location: false
295
+ fields:
296
+ - name: string
297
+ c_type: rbs_string
200
298
  - name: RBS::MethodType
201
299
  fields:
202
300
  - name: type_params
301
+ c_type: rbs_node_list
203
302
  - name: type
303
+ c_type: rbs_node
204
304
  - name: block
205
- - name: location
305
+ c_type: rbs_types_block
206
306
  - name: RBS::Namespace
307
+ expose_location: false
207
308
  fields:
208
309
  - name: path
310
+ c_type: rbs_node_list
209
311
  - name: absolute
312
+ c_type: bool
313
+ - name: RBS::Signature
314
+ expose_to_ruby: false
315
+ expose_location: false
316
+ fields:
317
+ - name: directives
318
+ c_type: rbs_node_list
319
+ - name: declarations
320
+ c_type: rbs_node_list
210
321
  - name: RBS::TypeName
322
+ expose_location: false
211
323
  fields:
212
324
  - name: namespace
325
+ c_type: rbs_namespace
326
+ c_name: rbs_namespace
213
327
  - name: name
328
+ c_type: rbs_ast_symbol
214
329
  - name: RBS::Types::Alias
215
330
  fields:
216
331
  - name: name
332
+ c_type: rbs_type_name
217
333
  - name: args
218
- - name: location
334
+ c_type: rbs_node_list
219
335
  - name: RBS::Types::Bases::Any
220
336
  fields:
221
337
  - name: todo
222
- - name: location
338
+ c_type: bool
223
339
  - name: RBS::Types::Bases::Bool
224
- fields:
225
- - name: location
226
340
  - name: RBS::Types::Bases::Bottom
227
- fields:
228
- - name: location
229
341
  - name: RBS::Types::Bases::Class
230
- fields:
231
- - name: location
232
342
  - name: RBS::Types::Bases::Instance
233
- fields:
234
- - name: location
235
343
  - name: RBS::Types::Bases::Nil
236
- fields:
237
- - name: location
238
344
  - name: RBS::Types::Bases::Self
239
- fields:
240
- - name: location
241
345
  - name: RBS::Types::Bases::Top
242
- fields:
243
- - name: location
244
346
  - name: RBS::Types::Bases::Void
245
- fields:
246
- - name: location
247
347
  - name: RBS::Types::Block
348
+ expose_location: false
248
349
  fields:
249
350
  - name: type
351
+ c_type: rbs_node
250
352
  - name: required
353
+ c_type: bool
251
354
  - name: self_type
355
+ c_type: rbs_node
252
356
  - name: RBS::Types::ClassInstance
253
357
  fields:
254
358
  - name: name
359
+ c_type: rbs_type_name
255
360
  - name: args
256
- - name: location
361
+ c_type: rbs_node_list
257
362
  - name: RBS::Types::ClassSingleton
258
363
  fields:
259
364
  - name: name
260
- - name: location
365
+ c_type: rbs_type_name
261
366
  - name: RBS::Types::Function
367
+ expose_location: false
262
368
  fields:
263
369
  - name: required_positionals
370
+ c_type: rbs_node_list
264
371
  - name: optional_positionals
372
+ c_type: rbs_node_list
265
373
  - name: rest_positionals
374
+ c_type: rbs_node
266
375
  - name: trailing_positionals
376
+ c_type: rbs_node_list
267
377
  - name: required_keywords
378
+ c_type: rbs_hash
268
379
  - name: optional_keywords
380
+ c_type: rbs_hash
269
381
  - name: rest_keywords
382
+ c_type: rbs_node
270
383
  - name: return_type
384
+ c_type: rbs_node
271
385
  - name: RBS::Types::Function::Param
272
386
  fields:
273
387
  - name: type
388
+ c_type: rbs_node
274
389
  - name: name
275
- - name: location
390
+ c_type: rbs_ast_symbol
276
391
  - name: RBS::Types::Interface
277
392
  fields:
278
393
  - name: name
394
+ c_type: rbs_type_name
279
395
  - name: args
280
- - name: location
396
+ c_type: rbs_node_list
281
397
  - name: RBS::Types::Intersection
282
398
  fields:
283
399
  - name: types
284
- - name: location
400
+ c_type: rbs_node_list
285
401
  - name: RBS::Types::Literal
286
402
  fields:
287
403
  - name: literal
288
- - name: location
404
+ c_type: rbs_node
289
405
  - name: RBS::Types::Optional
290
406
  fields:
291
407
  - name: type
292
- - name: location
408
+ c_type: rbs_node
293
409
  - name: RBS::Types::Proc
294
410
  fields:
295
411
  - name: type
412
+ c_type: rbs_node
296
413
  - name: block
297
- - name: location
414
+ c_type: rbs_types_block
298
415
  - name: self_type
416
+ c_type: rbs_node
299
417
  - name: RBS::Types::Record
300
418
  fields:
301
419
  - name: all_fields
302
- - name: location
420
+ c_type: rbs_hash
421
+ - name: RBS::Types::Record::FieldType
422
+ expose_to_ruby: false
423
+ expose_location: false
424
+ fields:
425
+ - name: type
426
+ c_type: rbs_node
427
+ - name: required
428
+ c_type: bool
303
429
  - name: RBS::Types::Tuple
304
430
  fields:
305
431
  - name: types
306
- - name: location
432
+ c_type: rbs_node_list
307
433
  - name: RBS::Types::Union
308
434
  fields:
309
435
  - name: types
310
- - name: location
436
+ c_type: rbs_node_list
311
437
  - name: RBS::Types::UntypedFunction
438
+ expose_location: false
312
439
  fields:
313
440
  - name: return_type
441
+ c_type: rbs_node
314
442
  - name: RBS::Types::Variable
315
443
  fields:
316
444
  - name: name
317
- - name: location
445
+ c_type: rbs_ast_symbol
446
+ - name: RBS::AST::Ruby::Annotations::NodeTypeAssertion
447
+ fields:
448
+ - name: prefix_location
449
+ c_type: rbs_location
450
+ - name: type
451
+ c_type: rbs_node
452
+ - name: RBS::AST::Ruby::Annotations::ColonMethodTypeAnnotation
453
+ fields:
454
+ - name: prefix_location
455
+ c_type: rbs_location
456
+ - name: annotations
457
+ c_type: rbs_node_list
458
+ - name: method_type
459
+ c_type: rbs_node
460
+ - name: RBS::AST::Ruby::Annotations::MethodTypesAnnotation
461
+ fields:
462
+ - name: prefix_location
463
+ c_type: rbs_location
464
+ - name: overloads
465
+ c_type: rbs_node_list
466
+ - name: vertical_bar_locations
467
+ c_type: rbs_location_list
468
+ - name: RBS::AST::Ruby::Annotations::SkipAnnotation
469
+ fields:
470
+ - name: prefix_location
471
+ c_type: rbs_location
472
+ - name: skip_location
473
+ c_type: rbs_location
474
+ - name: comment_location
475
+ c_type: rbs_location
476
+ - name: RBS::AST::Ruby::Annotations::ReturnTypeAnnotation
477
+ fields:
478
+ - name: prefix_location
479
+ c_type: rbs_location
480
+ - name: return_location
481
+ c_type: rbs_location
482
+ - name: colon_location
483
+ c_type: rbs_location
484
+ - name: return_type
485
+ c_type: rbs_node
486
+ - name: comment_location
487
+ c_type: rbs_location