rbs 3.7.0.dev.1 → 3.7.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
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
  }