rbs 3.7.0.dev.1 → 3.7.0.pre.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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -1
  3. data/.github/workflows/windows.yml +5 -3
  4. data/.gitignore +1 -0
  5. data/.rubocop.yml +6 -0
  6. data/CHANGELOG.md +47 -0
  7. data/Rakefile +23 -0
  8. data/config.yml +311 -0
  9. data/core/dir.rbs +1 -1
  10. data/core/kernel.rbs +2 -2
  11. data/core/process.rbs +1 -1
  12. data/core/set.rbs +1 -1
  13. data/docs/syntax.md +6 -4
  14. data/ext/rbs_extension/extconf.rb +10 -0
  15. data/ext/rbs_extension/parser.c +103 -110
  16. data/ext/rbs_extension/rbs_extension.h +1 -2
  17. data/{ext/rbs_extension → include/rbs}/constants.h +21 -19
  18. data/include/rbs/ruby_objs.h +72 -0
  19. data/include/rbs.h +7 -0
  20. data/lib/rbs/collection/config/lockfile_generator.rb +34 -5
  21. data/lib/rbs/collection/config.rb +2 -2
  22. data/lib/rbs/environment_loader.rb +5 -0
  23. data/lib/rbs/prototype/rb.rb +7 -3
  24. data/lib/rbs/types.rb +10 -3
  25. data/lib/rbs/version.rb +1 -1
  26. data/sig/ancestor_graph.rbs +1 -1
  27. data/sig/collection/config/lockfile_generator.rbs +9 -1
  28. data/sig/definition.rbs +1 -1
  29. data/sig/definition_builder.rbs +1 -1
  30. data/sig/environment.rbs +1 -1
  31. data/sig/prototype/rb.rbs +1 -1
  32. data/sig/type_alias_dependency.rbs +2 -2
  33. data/sig/type_alias_regularity.rbs +1 -1
  34. data/sig/type_param.rbs +3 -3
  35. data/sig/vendorer.rbs +1 -1
  36. data/{ext/rbs_extension → src}/constants.c +35 -36
  37. data/src/ruby_objs.c +793 -0
  38. data/stdlib/cgi/0/manifest.yaml +1 -0
  39. data/stdlib/csv/0/manifest.yaml +1 -0
  40. data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -1
  41. data/stdlib/json/0/json.rbs +1 -1
  42. data/stdlib/minitest/0/kernel.rbs +2 -2
  43. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
  44. data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
  45. data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
  46. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
  47. data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
  48. data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
  49. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  50. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  51. data/stdlib/minitest/0/minitest/mock.rbs +9 -5
  52. data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
  53. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
  54. data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
  55. data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
  56. data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
  57. data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
  58. data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
  59. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
  60. data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
  61. data/stdlib/minitest/0/minitest/spec.rbs +1 -1
  62. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
  63. data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
  64. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +1 -1
  65. data/stdlib/minitest/0/minitest/test.rbs +7 -14
  66. data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
  67. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  68. data/stdlib/minitest/0/minitest/unit.rbs +1 -2
  69. data/stdlib/minitest/0/minitest.rbs +41 -892
  70. data/stdlib/open-uri/0/manifest.yaml +1 -0
  71. data/stdlib/openssl/0/manifest.yaml +1 -0
  72. data/stdlib/openssl/0/openssl.rbs +26 -1
  73. data/stdlib/psych/0/core_ext.rbs +12 -0
  74. data/templates/include/rbs/constants.h.erb +20 -0
  75. data/templates/include/rbs/ruby_objs.h.erb +10 -0
  76. data/templates/src/constants.c.erb +36 -0
  77. data/templates/src/ruby_objs.c.erb +27 -0
  78. data/templates/template.rb +122 -0
  79. metadata +19 -9
  80. data/ext/rbs_extension/ruby_objs.c +0 -602
  81. data/ext/rbs_extension/ruby_objs.h +0 -51
  82. data/stdlib/minitest/0/manifest.yaml +0 -2
  83. /data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +0 -0
@@ -0,0 +1,72 @@
1
+ /*----------------------------------------------------------------------------*/
2
+ /* This file is generated by the templates/template.rb script and should not */
3
+ /* be modified manually. */
4
+ /* To change the template see */
5
+ /* templates/include/rbs/ruby_objs.h.erb */
6
+ /*----------------------------------------------------------------------------*/
7
+
8
+ #ifndef RBS__RUBY_OBJS_H
9
+ #define RBS__RUBY_OBJS_H
10
+
11
+ #include "ruby.h"
12
+
13
+ VALUE rbs_ast_annotation(VALUE string, VALUE location);
14
+ VALUE rbs_ast_comment(VALUE string, VALUE location);
15
+ VALUE rbs_ast_decl_class(VALUE name, VALUE type_params, VALUE super_class, VALUE members, VALUE annotations, VALUE location, VALUE comment);
16
+ VALUE rbs_ast_decl_class_super(VALUE name, VALUE args, VALUE location);
17
+ VALUE rbs_ast_decl_class_alias(VALUE new_name, VALUE old_name, VALUE location, VALUE comment);
18
+ VALUE rbs_ast_decl_constant(VALUE name, VALUE type, VALUE location, VALUE comment);
19
+ VALUE rbs_ast_decl_global(VALUE name, VALUE type, VALUE location, VALUE comment);
20
+ VALUE rbs_ast_decl_interface(VALUE name, VALUE type_params, VALUE members, VALUE annotations, VALUE location, VALUE comment);
21
+ VALUE rbs_ast_decl_module(VALUE name, VALUE type_params, VALUE self_types, VALUE members, VALUE annotations, VALUE location, VALUE comment);
22
+ VALUE rbs_ast_decl_module_self(VALUE name, VALUE args, VALUE location);
23
+ VALUE rbs_ast_decl_module_alias(VALUE new_name, VALUE old_name, VALUE location, VALUE comment);
24
+ VALUE rbs_ast_decl_type_alias(VALUE name, VALUE type_params, VALUE type, VALUE annotations, VALUE location, VALUE comment);
25
+ VALUE rbs_ast_directives_use(VALUE clauses, VALUE location);
26
+ VALUE rbs_ast_directives_use_single_clause(VALUE type_name, VALUE new_name, VALUE location);
27
+ VALUE rbs_ast_directives_use_wildcard_clause(VALUE namespace, VALUE location);
28
+ VALUE rbs_ast_members_alias(VALUE new_name, VALUE old_name, VALUE kind, VALUE annotations, VALUE location, VALUE comment);
29
+ VALUE rbs_ast_members_attr_accessor(VALUE name, VALUE type, VALUE ivar_name, VALUE kind, VALUE annotations, VALUE location, VALUE comment, VALUE visibility);
30
+ VALUE rbs_ast_members_attr_reader(VALUE name, VALUE type, VALUE ivar_name, VALUE kind, VALUE annotations, VALUE location, VALUE comment, VALUE visibility);
31
+ VALUE rbs_ast_members_attr_writer(VALUE name, VALUE type, VALUE ivar_name, VALUE kind, VALUE annotations, VALUE location, VALUE comment, VALUE visibility);
32
+ VALUE rbs_ast_members_class_instance_variable(VALUE name, VALUE type, VALUE location, VALUE comment);
33
+ VALUE rbs_ast_members_class_variable(VALUE name, VALUE type, VALUE location, VALUE comment);
34
+ VALUE rbs_ast_members_extend(VALUE name, VALUE args, VALUE annotations, VALUE location, VALUE comment);
35
+ VALUE rbs_ast_members_include(VALUE name, VALUE args, VALUE annotations, VALUE location, VALUE comment);
36
+ VALUE rbs_ast_members_instance_variable(VALUE name, VALUE type, VALUE location, VALUE comment);
37
+ VALUE rbs_ast_members_method_definition(VALUE name, VALUE kind, VALUE overloads, VALUE annotations, VALUE location, VALUE comment, VALUE overloading, VALUE visibility);
38
+ VALUE rbs_ast_members_method_definition_overload(VALUE annotations, VALUE method_type);
39
+ VALUE rbs_ast_members_prepend(VALUE name, VALUE args, VALUE annotations, VALUE location, VALUE comment);
40
+ VALUE rbs_ast_members_private(VALUE location);
41
+ VALUE rbs_ast_members_public(VALUE location);
42
+ VALUE rbs_ast_type_param(VALUE name, VALUE variance, VALUE upper_bound, VALUE default_type, VALUE location);
43
+ VALUE rbs_method_type(VALUE type_params, VALUE type, VALUE block, VALUE location);
44
+ VALUE rbs_namespace(VALUE path, VALUE absolute);
45
+ VALUE rbs_type_name(VALUE namespace, VALUE name);
46
+ VALUE rbs_alias(VALUE name, VALUE args, VALUE location);
47
+ VALUE rbs_bases_any(VALUE location);
48
+ VALUE rbs_bases_bool(VALUE location);
49
+ VALUE rbs_bases_bottom(VALUE location);
50
+ VALUE rbs_bases_class(VALUE location);
51
+ VALUE rbs_bases_instance(VALUE location);
52
+ VALUE rbs_bases_nil(VALUE location);
53
+ VALUE rbs_bases_self(VALUE location);
54
+ VALUE rbs_bases_top(VALUE location);
55
+ VALUE rbs_bases_void(VALUE location);
56
+ VALUE rbs_block(VALUE type, VALUE required, VALUE self_type);
57
+ VALUE rbs_class_instance(VALUE name, VALUE args, VALUE location);
58
+ VALUE rbs_class_singleton(VALUE name, VALUE location);
59
+ VALUE rbs_function(VALUE required_positionals, VALUE optional_positionals, VALUE rest_positionals, VALUE trailing_positionals, VALUE required_keywords, VALUE optional_keywords, VALUE rest_keywords, VALUE return_type);
60
+ VALUE rbs_function_param(VALUE type, VALUE name, VALUE location);
61
+ VALUE rbs_interface(VALUE name, VALUE args, VALUE location);
62
+ VALUE rbs_intersection(VALUE types, VALUE location);
63
+ VALUE rbs_literal(VALUE literal, VALUE location);
64
+ VALUE rbs_optional(VALUE type, VALUE location);
65
+ VALUE rbs_proc(VALUE type, VALUE block, VALUE location, VALUE self_type);
66
+ VALUE rbs_record(VALUE all_fields, VALUE location);
67
+ VALUE rbs_tuple(VALUE types, VALUE location);
68
+ VALUE rbs_union(VALUE types, VALUE location);
69
+ VALUE rbs_untyped_function(VALUE return_type);
70
+ VALUE rbs_variable(VALUE name, VALUE location);
71
+
72
+ #endif
data/include/rbs.h ADDED
@@ -0,0 +1,7 @@
1
+ #ifndef RBS_H
2
+ #define RBS_H
3
+
4
+ #include "rbs/constants.h"
5
+ #include "rbs/ruby_objs.h"
6
+
7
+ #endif
@@ -4,6 +4,8 @@ module RBS
4
4
  module Collection
5
5
  class Config
6
6
  class LockfileGenerator
7
+ ALUMNI_STDLIBS = { "mutex_m" => ">= 0.3.0" }
8
+
7
9
  class GemfileLockMismatchError < StandardError
8
10
  def initialize(expected:, actual:)
9
11
  @expected = expected
@@ -58,9 +60,10 @@ module RBS
58
60
 
59
61
  def generate
60
62
  config.gems.each do |gem|
61
- if Sources::Stdlib.instance.has?(gem["name"], nil) || gem.dig("source", "type") == "stdlib"
63
+ case
64
+ when gem.dig("source", "type") == "stdlib"
62
65
  unless gem.fetch("ignore", false)
63
- assign_stdlib(name: gem["name"], from_gem: nil)
66
+ assign_stdlib(name: gem["name"])
64
67
  end
65
68
  else
66
69
  assign_gem(name: gem["name"], version: gem["version"])
@@ -113,6 +116,11 @@ module RBS
113
116
  find_source(name: name)
114
117
  end
115
118
 
119
+ if source.is_a?(Sources::Stdlib)
120
+ assign_stdlib(name: name)
121
+ return
122
+ end
123
+
116
124
  if source
117
125
  installed_version = version
118
126
  best_version = find_best_version(version: installed_version, versions: source.versions(name))
@@ -149,16 +157,37 @@ module RBS
149
157
  end
150
158
  end
151
159
 
152
- private def assign_stdlib(name:, from_gem:)
160
+ private def assign_stdlib(name:, from_gem: nil)
153
161
  return if lockfile.gems.key?(name)
154
162
 
155
163
  case name
156
164
  when 'rubygems', 'set'
157
165
  msg = "`#{name}` has been moved to core library, so it is always loaded. Remove explicit loading `#{name}`"
158
166
  msg << " from `#{from_gem}`" if from_gem
159
- RBS.logger.warn msg
160
-
167
+ msg << "."
161
168
  return
169
+ when *ALUMNI_STDLIBS.keys
170
+ version = ALUMNI_STDLIBS.fetch(name)
171
+ if from_gem
172
+ # From `dependencies:` of a `manifest.yaml` of a gem
173
+ source = find_source(name: name) or raise
174
+ if source.is_a?(Sources::Stdlib)
175
+ RBS.logger.warn {
176
+ "`#{name}` is included in the RBS dependencies of `#{from_gem}`, but the type definition as a stdlib in rbs-gem is deprecated. Add `#{name}` (#{version}) to the dependency of your Ruby program to use the gem-bundled type definition."
177
+ }
178
+ else
179
+ RBS.logger.info {
180
+ "`#{name}` is included in the RBS dependencies of `#{from_gem}`, but the type definition as a stdlib in rbs-gem is deprecated. Delete `#{name}` from the RBS dependencies of `#{from_gem}`."
181
+ }
182
+ assign_gem(name: name, version: nil)
183
+ return
184
+ end
185
+ else
186
+ # From `gems:` of a `rbs_collection.yaml`
187
+ RBS.logger.warn {
188
+ "`#{name}` as a stdlib in rbs-gem is deprecated. Add `#{name}` (#{version}) to the dependency of your Ruby program to use the gem-bundled type definition."
189
+ }
190
+ end
162
191
  end
163
192
 
164
193
  source = Sources::Stdlib.instance
@@ -66,8 +66,8 @@ module RBS
66
66
  def sources
67
67
  @sources ||= [
68
68
  Sources::Rubygems.instance,
69
- Sources::Stdlib.instance,
70
- *@data['sources'].map { |c| Sources.from_config_entry(c, base_directory: @config_path.dirname) }
69
+ *@data['sources'].map { |c| Sources.from_config_entry(c, base_directory: @config_path.dirname) },
70
+ Sources::Stdlib.instance
71
71
  ]
72
72
  end
73
73
 
@@ -113,6 +113,11 @@ module RBS
113
113
  # @type var loaded: Array[[AST::Declarations::t, Pathname, source]]
114
114
  loaded = []
115
115
 
116
+ # For migrating stringio to stdlib
117
+ if @core_root && libs.none? { |lib| lib.name == 'stringio' }
118
+ add(library: 'stringio', version: nil)
119
+ end
120
+
116
121
  each_signature do |source, path, buffer, decls, dirs|
117
122
  decls.each do |decl|
118
123
  loaded << [decl, path, source]
@@ -368,7 +368,7 @@ module RBS
368
368
  when node.children[0].is_a?(Symbol)
369
369
  TypeName.new(name: node.children[0], namespace: Namespace.empty)
370
370
  else
371
- const_to_name!(node.children[0])
371
+ const_to_name!(node.children[0], context: context)
372
372
  end
373
373
 
374
374
  value_node = node.children.last
@@ -429,13 +429,13 @@ module RBS
429
429
  end
430
430
  end
431
431
 
432
- def const_to_name!(node)
432
+ def const_to_name!(node, context: nil)
433
433
  case node.type
434
434
  when :CONST
435
435
  TypeName.new(name: node.children[0], namespace: Namespace.empty)
436
436
  when :COLON2
437
437
  if node.children[0]
438
- namespace = const_to_name!(node.children[0]).to_namespace
438
+ namespace = const_to_name!(node.children[0], context: context).to_namespace
439
439
  else
440
440
  namespace = Namespace.empty
441
441
  end
@@ -443,6 +443,10 @@ module RBS
443
443
  TypeName.new(name: node.children[1], namespace: namespace)
444
444
  when :COLON3
445
445
  TypeName.new(name: node.children[0], namespace: Namespace.root)
446
+ when :SELF
447
+ raise if context.nil?
448
+
449
+ context.namespace.to_type_name
446
450
  else
447
451
  raise
448
452
  end
data/lib/rbs/types.rb CHANGED
@@ -521,13 +521,20 @@ module RBS
521
521
  def initialize(all_fields: nil, fields: nil, location:)
522
522
  case
523
523
  when fields && all_fields.nil?
524
- @all_fields = fields.map { |k, v| [k, [v, true]] }.to_h
524
+ @all_fields = fields.transform_values { |v| [v, true] }
525
525
  @fields = fields
526
526
  @optional_fields = {}
527
527
  when all_fields && fields.nil?
528
528
  @all_fields = all_fields
529
- @fields = all_fields.filter_map { |k, (v, required)| [k, v] if required }.to_h
530
- @optional_fields = all_fields.filter_map { |k, (v, required)| [k, v] unless required }.to_h
529
+ @fields = {}
530
+ @optional_fields = {}
531
+ all_fields.each do |(k, (v, required))|
532
+ if required
533
+ @fields[k] = v
534
+ else
535
+ @optional_fields[k] = v
536
+ end
537
+ end
531
538
  else
532
539
  raise ArgumentError, "only one of `:fields` or `:all_fields` is requireds"
533
540
  end
data/lib/rbs/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RBS
4
- VERSION = "3.7.0.dev.1"
4
+ VERSION = "3.7.0.pre.1"
5
5
  end
@@ -1,5 +1,5 @@
1
1
  module RBS
2
- # AncestorGraph is a utility class that helps iterating through ancestors and decendants of a class/module
2
+ # AncestorGraph is a utility class that helps iterating through ancestors and descendants of a class/module
3
3
  #
4
4
  # ```ruby
5
5
  # graph = AncestorGraph.new(env: env, ancestor_builder: ancestor_builder)
@@ -2,6 +2,10 @@ module RBS
2
2
  module Collection
3
3
  class Config
4
4
  class LockfileGenerator
5
+ # Name of stdlibs that was rbs-bundled stdlib but is now a gem.
6
+ #
7
+ ALUMNI_STDLIBS: Hash[String, String]
8
+
5
9
  class GemfileLockMismatchError < StandardError
6
10
  @expected: Pathname
7
11
 
@@ -43,7 +47,11 @@ module RBS
43
47
  #
44
48
  def assign_gem: (name: String, version: String?, ?skip: bool) -> void
45
49
 
46
- def assign_stdlib: (name: String, from_gem: String?) -> void
50
+ # Assign a gem from stdlib to lockfile
51
+ #
52
+ # `from_gem` is a String when the stdlib is assigned through the `dependencies:` in `manifest.yaml` of a gem.
53
+ #
54
+ def assign_stdlib: (name: String, ?from_gem: String) -> void
47
55
 
48
56
  # Find a source of a gem from ones registered in `config.sources`
49
57
  #
data/sig/definition.rbs CHANGED
@@ -27,7 +27,7 @@ module RBS
27
27
  # Annotations given to the overload associated to the method type
28
28
  attr_reader overload_annotations: Array[AST::Annotation]
29
29
 
30
- # Concatnation of `member_annotations` and `overload_annotations`
30
+ # Concatenation of `member_annotations` and `overload_annotations`
31
31
  attr_reader annotations: Array[AST::Annotation]
32
32
 
33
33
  def initialize: (type: MethodType, member: method_member, defined_in: TypeName, implemented_in: TypeName?, ?overload_annotations: Array[AST::Annotation]) -> void
@@ -157,7 +157,7 @@ module RBS
157
157
  # Returns a substitution that corresponds to type application
158
158
  #
159
159
  # ```
160
- # tapp_subst(`::Array`, [`::Integer`]) # => Subsitution.build([:Elem], [`::Integer`])
160
+ # tapp_subst(`::Array`, [`::Integer`]) # => Substitution.build([:Elem], [`::Integer`])
161
161
  # ```
162
162
  #
163
163
  def tapp_subst: (TypeName, Array[Types::t]) -> Substitution
data/sig/environment.rbs CHANGED
@@ -233,7 +233,7 @@ module RBS
233
233
  def normalize_type_name?: (TypeName) -> (TypeName | nil | false)
234
234
 
235
235
  # Normalize the type name or raises an error
236
- #
236
+ #
237
237
  def normalize_type_name!: (TypeName) -> TypeName
238
238
 
239
239
  # Returns a normalized module/class name or a type name with a normalized namespace
data/sig/prototype/rb.rbs CHANGED
@@ -44,7 +44,7 @@ module RBS
44
44
  # Returns a type name that represents the name of the constant.
45
45
  # `node` must be _constant_ node, `CONST`, `COLON2`, or `COLON3` node.
46
46
  #
47
- def const_to_name!: (RubyVM::AbstractSyntaxTree::Node node) -> TypeName
47
+ def const_to_name!: (RubyVM::AbstractSyntaxTree::Node node, ?context: Context?) -> TypeName
48
48
 
49
49
  # Returns a type name that represents the name of the constant.
50
50
  # `node` can be `SELF` for `extend self` pattern.
@@ -1,5 +1,5 @@
1
1
  module RBS
2
- # TypeAliasDependency calculates the dependnecies between type aliases
2
+ # TypeAliasDependency calculates the dependencies between type aliases
3
3
  #
4
4
  # The dependencies are normalized automatically.
5
5
  #
@@ -12,7 +12,7 @@ module RBS
12
12
  #
13
13
  attr_reader direct_dependencies: Hash[TypeName, Set[TypeName]]
14
14
 
15
- # A hash table from type alias name to a hash name with keys of transitive dependnecies
15
+ # A hash table from type alias name to a hash name with keys of transitive dependencies
16
16
  #
17
17
  # The source type name and dependencies are normalized.
18
18
  #
@@ -71,7 +71,7 @@ module RBS
71
71
  def initialize: (env: Environment) -> void
72
72
 
73
73
  # Returns `Diagnostic` instance if the alias type is nonregular.
74
- # Regurns `nil` if the alias type is regular.
74
+ # Returns `nil` if the alias type is regular.
75
75
  #
76
76
  # Normalizes the given type name automatically.
77
77
  #
data/sig/type_param.rbs CHANGED
@@ -75,7 +75,7 @@ module RBS
75
75
 
76
76
  def to_s: () -> String
77
77
 
78
- # Validates TypeParams if it refers another optiional type params
78
+ # Validates TypeParams if it refers another optional type params
79
79
  #
80
80
  # * Returns array of TypeParam objects that refers other optional type params
81
81
  # * Returns `nil` if all type params are valid
@@ -86,7 +86,7 @@ module RBS
86
86
  #
87
87
  def self.application: (Array[TypeParam], Array[Types::t]) -> Substitution?
88
88
 
89
- # Returns an array of type args, that fills ommited types with the defaults
89
+ # Returns an array of type args, that fills omitted types with the defaults
90
90
  #
91
91
  # ```rbs
92
92
  # interface _Foo[T, S = untyped]
@@ -102,7 +102,7 @@ module RBS
102
102
  # _Foo[String, Integer, untyped] # => _Foo[String, Integer, untyped] (Keeping extra args)
103
103
  # ```
104
104
  #
105
- # Note that it allows iinvalid arities, returning the `args` immediately.
105
+ # Note that it allows invalid arities, returning the `args` immediately.
106
106
  #
107
107
  def self.normalize_args: (Array[TypeParam], Array[Types::t]) -> Array[Types::t]
108
108
  end
data/sig/vendorer.rbs CHANGED
@@ -24,7 +24,7 @@ module RBS
24
24
  # vendor/rbs/minitest-1.2.3 => Will include `minitest` library RBSs.
25
25
  # ```
26
26
  #
27
- # The vendorerd RBSs will be loaded through :dir source.
27
+ # The vendored RBSs will be loaded through :dir source.
28
28
  #
29
29
  # ```rb
30
30
  # loader = RBS::EnvironmentLoader.new(core_root: nil, repository: RBS::Repository.new(no_stdlib: true))
@@ -1,32 +1,38 @@
1
+ /*----------------------------------------------------------------------------*/
2
+ /* This file is generated by the templates/template.rb script and should not */
3
+ /* be modified manually. */
4
+ /* To change the template see */
5
+ /* templates/src/constants.c.erb */
6
+ /*----------------------------------------------------------------------------*/
7
+
1
8
  #include "rbs_extension.h"
2
9
 
3
10
  VALUE RBS_Parser;
4
11
 
5
12
  VALUE RBS;
6
13
  VALUE RBS_AST;
7
- VALUE RBS_AST_Comment;
8
- VALUE RBS_AST_Annotation;
9
- VALUE RBS_AST_TypeParam;
10
-
11
14
  VALUE RBS_AST_Declarations;
15
+ VALUE RBS_AST_Directives;
16
+ VALUE RBS_AST_Members;
17
+ VALUE RBS_Parser;
18
+ VALUE RBS_Types;
19
+ VALUE RBS_Types_Bases;
12
20
 
13
- VALUE RBS_AST_Declarations_TypeAlias;
21
+ VALUE RBS_AST_Annotation;
22
+ VALUE RBS_AST_Comment;
23
+ VALUE RBS_AST_Declarations_Class;
24
+ VALUE RBS_AST_Declarations_Class_Super;
25
+ VALUE RBS_AST_Declarations_ClassAlias;
14
26
  VALUE RBS_AST_Declarations_Constant;
15
27
  VALUE RBS_AST_Declarations_Global;
16
28
  VALUE RBS_AST_Declarations_Interface;
17
29
  VALUE RBS_AST_Declarations_Module;
18
30
  VALUE RBS_AST_Declarations_Module_Self;
19
- VALUE RBS_AST_Declarations_Class;
20
- VALUE RBS_AST_Declarations_Class_Super;
21
31
  VALUE RBS_AST_Declarations_ModuleAlias;
22
- VALUE RBS_AST_Declarations_ClassAlias;
23
-
24
- VALUE RBS_AST_Directives;
32
+ VALUE RBS_AST_Declarations_TypeAlias;
25
33
  VALUE RBS_AST_Directives_Use;
26
34
  VALUE RBS_AST_Directives_Use_SingleClause;
27
35
  VALUE RBS_AST_Directives_Use_WildcardClause;
28
-
29
- VALUE RBS_AST_Members;
30
36
  VALUE RBS_AST_Members_Alias;
31
37
  VALUE RBS_AST_Members_AttrAccessor;
32
38
  VALUE RBS_AST_Members_AttrReader;
@@ -41,10 +47,10 @@ VALUE RBS_AST_Members_MethodDefinition_Overload;
41
47
  VALUE RBS_AST_Members_Prepend;
42
48
  VALUE RBS_AST_Members_Private;
43
49
  VALUE RBS_AST_Members_Public;
44
-
50
+ VALUE RBS_AST_TypeParam;
51
+ VALUE RBS_MethodType;
45
52
  VALUE RBS_Namespace;
46
53
  VALUE RBS_TypeName;
47
-
48
54
  VALUE RBS_Types_Alias;
49
55
  VALUE RBS_Types_Bases_Any;
50
56
  VALUE RBS_Types_Bases_Bool;
@@ -55,13 +61,11 @@ VALUE RBS_Types_Bases_Nil;
55
61
  VALUE RBS_Types_Bases_Self;
56
62
  VALUE RBS_Types_Bases_Top;
57
63
  VALUE RBS_Types_Bases_Void;
58
- VALUE RBS_Types_Bases;
59
64
  VALUE RBS_Types_Block;
60
65
  VALUE RBS_Types_ClassInstance;
61
66
  VALUE RBS_Types_ClassSingleton;
62
- VALUE RBS_Types_Function_Param;
63
67
  VALUE RBS_Types_Function;
64
- VALUE RBS_Types_UntypedFunction;
68
+ VALUE RBS_Types_Function_Param;
65
69
  VALUE RBS_Types_Interface;
66
70
  VALUE RBS_Types_Intersection;
67
71
  VALUE RBS_Types_Literal;
@@ -70,9 +74,8 @@ VALUE RBS_Types_Proc;
70
74
  VALUE RBS_Types_Record;
71
75
  VALUE RBS_Types_Tuple;
72
76
  VALUE RBS_Types_Union;
77
+ VALUE RBS_Types_UntypedFunction;
73
78
  VALUE RBS_Types_Variable;
74
- VALUE RBS_Types;
75
- VALUE RBS_MethodType;
76
79
 
77
80
  VALUE RBS_ParsingError;
78
81
 
@@ -83,29 +86,27 @@ void rbs__init_constants(void) {
83
86
  IMPORT_CONSTANT(RBS_ParsingError, RBS, "ParsingError");
84
87
 
85
88
  IMPORT_CONSTANT(RBS_AST, RBS, "AST");
86
- IMPORT_CONSTANT(RBS_AST_Comment, RBS_AST, "Comment");
87
- IMPORT_CONSTANT(RBS_AST_Annotation, RBS_AST, "Annotation");
88
- IMPORT_CONSTANT(RBS_AST_TypeParam, RBS_AST, "TypeParam");
89
-
90
89
  IMPORT_CONSTANT(RBS_AST_Declarations, RBS_AST, "Declarations");
90
+ IMPORT_CONSTANT(RBS_AST_Directives, RBS_AST, "Directives");
91
+ IMPORT_CONSTANT(RBS_AST_Members, RBS_AST, "Members");
92
+ IMPORT_CONSTANT(RBS_Types, RBS, "Types");
93
+ IMPORT_CONSTANT(RBS_Types_Bases, RBS_Types, "Bases");
91
94
 
92
- IMPORT_CONSTANT(RBS_AST_Declarations_TypeAlias, RBS_AST_Declarations, "TypeAlias");
95
+ IMPORT_CONSTANT(RBS_AST_Annotation, RBS_AST, "Annotation");
96
+ IMPORT_CONSTANT(RBS_AST_Comment, RBS_AST, "Comment");
97
+ IMPORT_CONSTANT(RBS_AST_Declarations_Class, RBS_AST_Declarations, "Class");
98
+ IMPORT_CONSTANT(RBS_AST_Declarations_Class_Super, RBS_AST_Declarations_Class, "Super");
99
+ IMPORT_CONSTANT(RBS_AST_Declarations_ClassAlias, RBS_AST_Declarations, "ClassAlias");
93
100
  IMPORT_CONSTANT(RBS_AST_Declarations_Constant, RBS_AST_Declarations, "Constant");
94
101
  IMPORT_CONSTANT(RBS_AST_Declarations_Global, RBS_AST_Declarations, "Global");
95
102
  IMPORT_CONSTANT(RBS_AST_Declarations_Interface, RBS_AST_Declarations, "Interface");
96
103
  IMPORT_CONSTANT(RBS_AST_Declarations_Module, RBS_AST_Declarations, "Module");
97
104
  IMPORT_CONSTANT(RBS_AST_Declarations_Module_Self, RBS_AST_Declarations_Module, "Self");
98
- IMPORT_CONSTANT(RBS_AST_Declarations_Class, RBS_AST_Declarations, "Class");
99
- IMPORT_CONSTANT(RBS_AST_Declarations_Class_Super, RBS_AST_Declarations_Class, "Super");
100
- IMPORT_CONSTANT(RBS_AST_Declarations_ClassAlias, RBS_AST_Declarations, "ClassAlias");
101
105
  IMPORT_CONSTANT(RBS_AST_Declarations_ModuleAlias, RBS_AST_Declarations, "ModuleAlias");
102
-
103
- IMPORT_CONSTANT(RBS_AST_Directives, RBS_AST, "Directives");
106
+ IMPORT_CONSTANT(RBS_AST_Declarations_TypeAlias, RBS_AST_Declarations, "TypeAlias");
104
107
  IMPORT_CONSTANT(RBS_AST_Directives_Use, RBS_AST_Directives, "Use");
105
108
  IMPORT_CONSTANT(RBS_AST_Directives_Use_SingleClause, RBS_AST_Directives_Use, "SingleClause");
106
109
  IMPORT_CONSTANT(RBS_AST_Directives_Use_WildcardClause, RBS_AST_Directives_Use, "WildcardClause");
107
-
108
- IMPORT_CONSTANT(RBS_AST_Members, RBS_AST, "Members");
109
110
  IMPORT_CONSTANT(RBS_AST_Members_Alias, RBS_AST_Members, "Alias");
110
111
  IMPORT_CONSTANT(RBS_AST_Members_AttrAccessor, RBS_AST_Members, "AttrAccessor");
111
112
  IMPORT_CONSTANT(RBS_AST_Members_AttrReader, RBS_AST_Members, "AttrReader");
@@ -120,12 +121,11 @@ void rbs__init_constants(void) {
120
121
  IMPORT_CONSTANT(RBS_AST_Members_Prepend, RBS_AST_Members, "Prepend");
121
122
  IMPORT_CONSTANT(RBS_AST_Members_Private, RBS_AST_Members, "Private");
122
123
  IMPORT_CONSTANT(RBS_AST_Members_Public, RBS_AST_Members, "Public");
123
-
124
+ IMPORT_CONSTANT(RBS_AST_TypeParam, RBS_AST, "TypeParam");
125
+ IMPORT_CONSTANT(RBS_MethodType, RBS, "MethodType");
124
126
  IMPORT_CONSTANT(RBS_Namespace, RBS, "Namespace");
125
127
  IMPORT_CONSTANT(RBS_TypeName, RBS, "TypeName");
126
- IMPORT_CONSTANT(RBS_Types, RBS, "Types");
127
128
  IMPORT_CONSTANT(RBS_Types_Alias, RBS_Types, "Alias");
128
- IMPORT_CONSTANT(RBS_Types_Bases, RBS_Types, "Bases");
129
129
  IMPORT_CONSTANT(RBS_Types_Bases_Any, RBS_Types_Bases, "Any");
130
130
  IMPORT_CONSTANT(RBS_Types_Bases_Bool, RBS_Types_Bases, "Bool");
131
131
  IMPORT_CONSTANT(RBS_Types_Bases_Bottom, RBS_Types_Bases, "Bottom");
@@ -139,7 +139,6 @@ void rbs__init_constants(void) {
139
139
  IMPORT_CONSTANT(RBS_Types_ClassInstance, RBS_Types, "ClassInstance");
140
140
  IMPORT_CONSTANT(RBS_Types_ClassSingleton, RBS_Types, "ClassSingleton");
141
141
  IMPORT_CONSTANT(RBS_Types_Function, RBS_Types, "Function");
142
- IMPORT_CONSTANT(RBS_Types_UntypedFunction, RBS_Types, "UntypedFunction");
143
142
  IMPORT_CONSTANT(RBS_Types_Function_Param, RBS_Types_Function, "Param");
144
143
  IMPORT_CONSTANT(RBS_Types_Interface, RBS_Types, "Interface");
145
144
  IMPORT_CONSTANT(RBS_Types_Intersection, RBS_Types, "Intersection");
@@ -149,6 +148,6 @@ void rbs__init_constants(void) {
149
148
  IMPORT_CONSTANT(RBS_Types_Record, RBS_Types, "Record");
150
149
  IMPORT_CONSTANT(RBS_Types_Tuple, RBS_Types, "Tuple");
151
150
  IMPORT_CONSTANT(RBS_Types_Union, RBS_Types, "Union");
151
+ IMPORT_CONSTANT(RBS_Types_UntypedFunction, RBS_Types, "UntypedFunction");
152
152
  IMPORT_CONSTANT(RBS_Types_Variable, RBS_Types, "Variable");
153
- IMPORT_CONSTANT(RBS_MethodType, RBS, "MethodType");
154
153
  }