rbs 2.6.0 → 2.7.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +5 -0
  4. data/CHANGELOG.md +48 -1
  5. data/Gemfile.lock +10 -9
  6. data/Rakefile +0 -5
  7. data/Steepfile +1 -0
  8. data/core/basic_object.rbs +2 -2
  9. data/core/fiber.rbs +304 -14
  10. data/core/float.rbs +2 -0
  11. data/core/io.rbs +95 -1
  12. data/core/kernel.rbs +1 -1
  13. data/core/module.rbs +1 -1
  14. data/core/regexp.rbs +1 -1
  15. data/core/string_io.rbs +1 -1
  16. data/core/warning.rbs +1 -1
  17. data/ext/rbs_extension/parser.c +36 -10
  18. data/ext/rbs_extension/ruby_objs.c +4 -2
  19. data/ext/rbs_extension/ruby_objs.h +2 -2
  20. data/lib/rbs/ancestor_graph.rb +2 -0
  21. data/lib/rbs/annotate/annotations.rb +2 -0
  22. data/lib/rbs/annotate/formatter.rb +4 -2
  23. data/lib/rbs/annotate/rdoc_annotator.rb +2 -0
  24. data/lib/rbs/annotate/rdoc_source.rb +2 -0
  25. data/lib/rbs/annotate.rb +2 -0
  26. data/lib/rbs/ast/annotation.rb +2 -0
  27. data/lib/rbs/ast/comment.rb +2 -0
  28. data/lib/rbs/ast/declarations.rb +2 -0
  29. data/lib/rbs/ast/members.rb +2 -0
  30. data/lib/rbs/ast/type_param.rb +3 -1
  31. data/lib/rbs/buffer.rb +2 -0
  32. data/lib/rbs/builtin_names.rb +2 -0
  33. data/lib/rbs/cli.rb +39 -2
  34. data/lib/rbs/collection/cleaner.rb +2 -0
  35. data/lib/rbs/collection/config/lockfile_generator.rb +8 -3
  36. data/lib/rbs/collection/config.rb +2 -0
  37. data/lib/rbs/collection/installer.rb +2 -0
  38. data/lib/rbs/collection/sources/base.rb +14 -0
  39. data/lib/rbs/collection/sources/git.rb +3 -0
  40. data/lib/rbs/collection/sources/rubygems.rb +3 -0
  41. data/lib/rbs/collection/sources/stdlib.rb +12 -7
  42. data/lib/rbs/collection/sources.rb +3 -0
  43. data/lib/rbs/collection.rb +2 -0
  44. data/lib/rbs/constant.rb +2 -0
  45. data/lib/rbs/constant_table.rb +5 -3
  46. data/lib/rbs/definition.rb +13 -1
  47. data/lib/rbs/definition_builder/ancestor_builder.rb +2 -0
  48. data/lib/rbs/definition_builder/method_builder.rb +2 -0
  49. data/lib/rbs/definition_builder.rb +75 -13
  50. data/lib/rbs/environment.rb +2 -0
  51. data/lib/rbs/environment_loader.rb +25 -5
  52. data/lib/rbs/environment_walker.rb +2 -0
  53. data/lib/rbs/errors.rb +3 -1
  54. data/lib/rbs/factory.rb +2 -0
  55. data/lib/rbs/location_aux.rb +3 -1
  56. data/lib/rbs/locator.rb +2 -0
  57. data/lib/rbs/method_type.rb +7 -5
  58. data/lib/rbs/namespace.rb +9 -5
  59. data/lib/rbs/parser_aux.rb +2 -0
  60. data/lib/rbs/parser_compat/lexer_error.rb +2 -0
  61. data/lib/rbs/parser_compat/located_value.rb +2 -0
  62. data/lib/rbs/parser_compat/semantics_error.rb +2 -0
  63. data/lib/rbs/parser_compat/syntax_error.rb +2 -0
  64. data/lib/rbs/prototype/helpers.rb +13 -8
  65. data/lib/rbs/prototype/rb.rb +2 -0
  66. data/lib/rbs/prototype/rbi.rb +11 -6
  67. data/lib/rbs/prototype/runtime.rb +13 -4
  68. data/lib/rbs/repository.rb +4 -4
  69. data/lib/rbs/resolver/constant_resolver.rb +2 -0
  70. data/lib/rbs/resolver/type_name_resolver.rb +2 -0
  71. data/lib/rbs/sorter.rb +168 -0
  72. data/lib/rbs/substitution.rb +2 -0
  73. data/lib/rbs/test/errors.rb +2 -0
  74. data/lib/rbs/test/hook.rb +2 -0
  75. data/lib/rbs/test/observer.rb +2 -0
  76. data/lib/rbs/test/setup.rb +2 -0
  77. data/lib/rbs/test/setup_helper.rb +2 -0
  78. data/lib/rbs/test/spy.rb +2 -0
  79. data/lib/rbs/test/tester.rb +2 -0
  80. data/lib/rbs/test/type_check.rb +2 -0
  81. data/lib/rbs/test.rb +2 -0
  82. data/lib/rbs/type_alias_dependency.rb +2 -0
  83. data/lib/rbs/type_alias_regularity.rb +2 -0
  84. data/lib/rbs/type_name.rb +2 -0
  85. data/lib/rbs/type_name_resolver.rb +4 -2
  86. data/lib/rbs/types.rb +68 -18
  87. data/lib/rbs/validator.rb +2 -0
  88. data/lib/rbs/variance_calculator.rb +2 -0
  89. data/lib/rbs/vendorer.rb +2 -0
  90. data/lib/rbs/version.rb +3 -1
  91. data/lib/rbs/writer.rb +3 -1
  92. data/lib/rbs.rb +4 -2
  93. data/lib/rdoc/discover.rb +20 -0
  94. data/lib/rdoc_plugin/parser.rb +163 -0
  95. data/schema/methodType.json +7 -1
  96. data/schema/types.json +13 -1
  97. data/sig/ancestor_builder.rbs +66 -7
  98. data/sig/annotation.rbs +7 -6
  99. data/sig/builtin_names.rbs +2 -0
  100. data/sig/cli.rbs +8 -0
  101. data/sig/collection/config.rbs +13 -4
  102. data/sig/collection/installer.rbs +2 -0
  103. data/sig/collection/sources.rbs +23 -4
  104. data/sig/definition.rbs +8 -0
  105. data/sig/definition_builder.rbs +64 -7
  106. data/sig/environment.rbs +4 -0
  107. data/sig/environment_loader.rbs +4 -2
  108. data/sig/location.rbs +8 -4
  109. data/sig/manifest.yaml +1 -0
  110. data/sig/members.rbs +1 -1
  111. data/sig/method_builder.rbs +10 -0
  112. data/sig/namespace.rbs +54 -31
  113. data/sig/prototype/rb.rbs +4 -0
  114. data/sig/rbs.rbs +8 -6
  115. data/sig/rdoc/rbs.rbs +63 -0
  116. data/sig/{polyfill.rbs → shims.rbs} +1 -31
  117. data/sig/sorter.rbs +23 -0
  118. data/sig/types.rbs +14 -2
  119. data/sig/vendorer.rbs +32 -25
  120. data/stdlib/bigdecimal/0/big_decimal.rbs +250 -0
  121. data/stdlib/erb/0/erb.rbs +107 -0
  122. data/stdlib/logger/0/logger.rbs +2 -2
  123. data/stdlib/rdoc/0/rdoc.rbs +758 -0
  124. data/steep/Gemfile.lock +8 -8
  125. metadata +12 -6
  126. data/stdlib/fiber/0/fiber.rbs +0 -99
data/steep/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activesupport (7.0.3)
4
+ activesupport (7.0.3.1)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.2)
6
6
  i18n (>= 1.6, < 2)
7
7
  minitest (>= 5.1)
@@ -9,13 +9,13 @@ GEM
9
9
  ast (2.4.2)
10
10
  concurrent-ruby (1.1.10)
11
11
  ffi (1.15.5)
12
- i18n (1.10.0)
12
+ i18n (1.12.0)
13
13
  concurrent-ruby (~> 1.0)
14
14
  language_server-protocol (3.16.0.3)
15
15
  listen (3.7.1)
16
16
  rb-fsevent (~> 0.10, >= 0.10.3)
17
17
  rb-inotify (~> 0.9, >= 0.9.10)
18
- minitest (5.15.0)
18
+ minitest (5.16.2)
19
19
  parallel (1.22.1)
20
20
  parser (3.1.2.0)
21
21
  ast (~> 2.4.1)
@@ -23,21 +23,21 @@ GEM
23
23
  rb-fsevent (0.11.1)
24
24
  rb-inotify (0.10.1)
25
25
  ffi (~> 1.0)
26
- rbs (2.4.0)
27
- steep (1.0.0)
26
+ rbs (2.6.0)
27
+ steep (1.1.1)
28
28
  activesupport (>= 5.1)
29
29
  language_server-protocol (>= 3.15, < 4.0)
30
30
  listen (~> 3.0)
31
31
  parallel (>= 1.0.0)
32
- parser (>= 3.0)
32
+ parser (>= 3.1)
33
33
  rainbow (>= 2.2.2, < 4.0)
34
34
  rbs (>= 2.3.2)
35
35
  terminal-table (>= 2, < 4)
36
36
  terminal-table (3.0.2)
37
37
  unicode-display_width (>= 1.1.1, < 3)
38
- tzinfo (2.0.4)
38
+ tzinfo (2.0.5)
39
39
  concurrent-ruby (~> 1.0)
40
- unicode-display_width (2.1.0)
40
+ unicode-display_width (2.2.0)
41
41
 
42
42
  PLATFORMS
43
43
  ruby
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.7.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-22 00:00:00.000000000 Z
11
+ date: 2022-09-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: RBS is the language for type signatures for Ruby and standard library
14
14
  definitions.
@@ -146,6 +146,7 @@ files:
146
146
  - lib/rbs/collection/config/lockfile_generator.rb
147
147
  - lib/rbs/collection/installer.rb
148
148
  - lib/rbs/collection/sources.rb
149
+ - lib/rbs/collection/sources/base.rb
149
150
  - lib/rbs/collection/sources/git.rb
150
151
  - lib/rbs/collection/sources/rubygems.rb
151
152
  - lib/rbs/collection/sources/stdlib.rb
@@ -176,6 +177,7 @@ files:
176
177
  - lib/rbs/repository.rb
177
178
  - lib/rbs/resolver/constant_resolver.rb
178
179
  - lib/rbs/resolver/type_name_resolver.rb
180
+ - lib/rbs/sorter.rb
179
181
  - lib/rbs/substitution.rb
180
182
  - lib/rbs/test.rb
181
183
  - lib/rbs/test/errors.rb
@@ -196,6 +198,8 @@ files:
196
198
  - lib/rbs/vendorer.rb
197
199
  - lib/rbs/version.rb
198
200
  - lib/rbs/writer.rb
201
+ - lib/rdoc/discover.rb
202
+ - lib/rdoc_plugin/parser.rb
199
203
  - rbs.gemspec
200
204
  - schema/annotation.json
201
205
  - schema/comment.json
@@ -240,19 +244,21 @@ files:
240
244
  - sig/method_types.rbs
241
245
  - sig/namespace.rbs
242
246
  - sig/parser.rbs
243
- - sig/polyfill.rbs
244
247
  - sig/prototype/helpers.rbs
245
248
  - sig/prototype/rb.rbs
246
249
  - sig/prototype/rbi.rbs
247
250
  - sig/rbs.rbs
251
+ - sig/rdoc/rbs.rbs
248
252
  - sig/repository.rbs
249
253
  - sig/resolver/constant_resolver.rbs
250
254
  - sig/resolver/context.rbs
251
255
  - sig/resolver/type_name_resolver.rbs
256
+ - sig/shims.rbs
252
257
  - sig/shims/abstract_syntax_tree.rbs
253
258
  - sig/shims/enumerable.rbs
254
259
  - sig/shims/pp.rbs
255
260
  - sig/shims/ripper.rbs
261
+ - sig/sorter.rbs
256
262
  - sig/substitution.rbs
257
263
  - sig/type_alias_dependency.rbs
258
264
  - sig/type_alias_regularity.rbs
@@ -286,7 +292,6 @@ files:
286
292
  - stdlib/digest/0/digest.rbs
287
293
  - stdlib/erb/0/erb.rbs
288
294
  - stdlib/etc/0/etc.rbs
289
- - stdlib/fiber/0/fiber.rbs
290
295
  - stdlib/fileutils/0/fileutils.rbs
291
296
  - stdlib/find/0/find.rbs
292
297
  - stdlib/forwardable/0/forwardable.rbs
@@ -351,6 +356,7 @@ files:
351
356
  - stdlib/prime/0/prime.rbs
352
357
  - stdlib/pstore/0/pstore.rbs
353
358
  - stdlib/pty/0/pty.rbs
359
+ - stdlib/rdoc/0/rdoc.rbs
354
360
  - stdlib/resolv/0/manifest.yaml
355
361
  - stdlib/resolv/0/resolv.rbs
356
362
  - stdlib/rubygems/0/basic_specification.rbs
@@ -427,9 +433,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
427
433
  version: '2.6'
428
434
  required_rubygems_version: !ruby/object:Gem::Requirement
429
435
  requirements:
430
- - - ">="
436
+ - - ">"
431
437
  - !ruby/object:Gem::Version
432
- version: '0'
438
+ version: 1.3.1
433
439
  requirements: []
434
440
  rubygems_version: 3.3.7
435
441
  signing_key:
@@ -1,99 +0,0 @@
1
- %a{annotate:rdoc:skip}
2
- class Fiber
3
- # <!--
4
- # rdoc-file=cont.c
5
- # - Fiber.current -> fiber
6
- # -->
7
- # Returns the current fiber. If you are not running in the context of a fiber
8
- # this method will return the root fiber.
9
- #
10
- def self.current: () -> Fiber
11
-
12
- public
13
-
14
- # <!--
15
- # rdoc-file=cont.c
16
- # - fiber.alive? -> true or false
17
- # -->
18
- # Returns true if the fiber can still be resumed (or transferred to). After
19
- # finishing execution of the fiber block this method will always return `false`.
20
- #
21
- def alive?: () -> bool
22
-
23
- # <!--
24
- # rdoc-file=cont.c
25
- # - fiber.transfer(args, ...) -> obj
26
- # -->
27
- # Transfer control to another fiber, resuming it from where it last stopped or
28
- # starting it if it was not resumed before. The calling fiber will be suspended
29
- # much like in a call to Fiber.yield.
30
- #
31
- # The fiber which receives the transfer call treats it much like a resume call.
32
- # Arguments passed to transfer are treated like those passed to resume.
33
- #
34
- # The two style of control passing to and from fiber (one is #resume and
35
- # Fiber::yield, another is #transfer to and from fiber) can't be freely mixed.
36
- #
37
- # * If the Fiber's lifecycle had started with transfer, it will never be able
38
- # to yield or be resumed control passing, only finish or transfer back. (It
39
- # still can resume other fibers that are allowed to be resumed.)
40
- # * If the Fiber's lifecycle had started with resume, it can yield or transfer
41
- # to another Fiber, but can receive control back only the way compatible
42
- # with the way it was given away: if it had transferred, it only can be
43
- # transferred back, and if it had yielded, it only can be resumed back.
44
- # After that, it again can transfer or yield.
45
- #
46
- #
47
- # If those rules are broken FiberError is raised.
48
- #
49
- # For an individual Fiber design, yield/resume is easier to use (the Fiber just
50
- # gives away control, it doesn't need to think about who the control is given
51
- # to), while transfer is more flexible for complex cases, allowing to build
52
- # arbitrary graphs of Fibers dependent on each other.
53
- #
54
- # Example:
55
- #
56
- # manager = nil # For local var to be visible inside worker block
57
- #
58
- # # This fiber would be started with transfer
59
- # # It can't yield, and can't be resumed
60
- # worker = Fiber.new { |work|
61
- # puts "Worker: starts"
62
- # puts "Worker: Performed #{work.inspect}, transferring back"
63
- # # Fiber.yield # this would raise FiberError: attempt to yield on a not resumed fiber
64
- # # manager.resume # this would raise FiberError: attempt to resume a resumed fiber (double resume)
65
- # manager.transfer(work.capitalize)
66
- # }
67
- #
68
- # # This fiber would be started with resume
69
- # # It can yield or transfer, and can be transferred
70
- # # back or resumed
71
- # manager = Fiber.new {
72
- # puts "Manager: starts"
73
- # puts "Manager: transferring 'something' to worker"
74
- # result = worker.transfer('something')
75
- # puts "Manager: worker returned #{result.inspect}"
76
- # # worker.resume # this would raise FiberError: attempt to resume a transferring fiber
77
- # Fiber.yield # this is OK, the fiber transferred from and to, now it can yield
78
- # puts "Manager: finished"
79
- # }
80
- #
81
- # puts "Starting the manager"
82
- # manager.resume
83
- # puts "Resuming the manager"
84
- # # manager.transfer # this would raise FiberError: attempt to transfer to a yielding fiber
85
- # manager.resume
86
- #
87
- # *produces*
88
- #
89
- # Starting the manager
90
- # Manager: starts
91
- # Manager: transferring 'something' to worker
92
- # Worker: starts
93
- # Worker: Performed "something", transferring back
94
- # Manager: worker returned "Something"
95
- # Resuming the manager
96
- # Manager: finished
97
- #
98
- def transfer: (*untyped) -> untyped
99
- end