rbs 3.7.0.dev.1 → 3.7.0

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 +53 -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
@@ -1,2 +1,3 @@
1
1
  dependencies:
2
2
  - name: tempfile
3
+ - name: stringio
@@ -1,2 +1,3 @@
1
1
  dependencies:
2
2
  - name: forwardable
3
+ - name: stringio
@@ -243,7 +243,7 @@ module DidYouMean
243
243
  # - requireables()
244
244
  # -->
245
245
  #
246
- def self.requireables: -> Array[String]
246
+ def self.requireables: () -> Array[String]
247
247
 
248
248
  # <!--
249
249
  # rdoc-file=lib/did_you_mean/spell_checkers/require_path_checker.rb
@@ -714,7 +714,7 @@ module JSON
714
714
  #
715
715
  def self.create_id=: (_ToS create_id) -> _ToS
716
716
 
717
- def self.deep_const_get: (_ToS path) -> untyped
717
+ def self.deep_const_get: (interned path) -> untyped
718
718
 
719
719
  # <!--
720
720
  # rdoc-file=ext/json/lib/json/common.rb
@@ -32,11 +32,11 @@ module Kernel : ::BasicObject
32
32
  #
33
33
  # For some suggestions on how to improve your specs, try:
34
34
  #
35
- # http://betterspecs.org
35
+ # https://betterspecs.org
36
36
  #
37
37
  # but do note that several items there are debatable or specific to rspec.
38
38
  #
39
39
  # For more information about expectations, see Minitest::Expectations.
40
40
  #
41
- private def describe: (untyped desc, *untyped additional_desc) ?{ () -> untyped } -> untyped
41
+ private def describe: (untyped desc, *untyped additional_desc) { (?) -> untyped } -> untyped
42
42
  end
@@ -3,6 +3,9 @@
3
3
  # Go nuts.
4
4
  #
5
5
  class Minitest::AbstractReporter
6
+ @mutex: untyped
7
+ def initialize: () -> void
8
+
6
9
  # <!--
7
10
  # rdoc-file=lib/minitest.rb
8
11
  # - start()
@@ -45,5 +48,5 @@ class Minitest::AbstractReporter
45
48
  # Did this run pass?
46
49
  #
47
50
  def passed?: () -> true
48
- include Mutex_m
51
+ def synchronize: () { (?) -> untyped } -> untyped
49
52
  end
@@ -13,4 +13,5 @@ class Minitest::Assertion < ::Exception
13
13
  def location: () -> untyped
14
14
  def result_code: () -> untyped
15
15
  def result_label: () -> "Failure"
16
+ RE: Regexp
16
17
  end
@@ -8,6 +8,10 @@
8
8
  # See Minitest::Runnable for an example.
9
9
  #
10
10
  module Minitest::Assertions
11
+ self.@diff: untyped
12
+
13
+ @skip: untyped
14
+
11
15
  def self.inspect: () -> "UNDEFINED"
12
16
 
13
17
  # <!--
@@ -94,6 +98,8 @@ module Minitest::Assertions
94
98
  #
95
99
  def assert_empty: (untyped obj, ?untyped? msg) -> untyped
96
100
 
101
+ def _where: () -> untyped
102
+
97
103
  # <!--
98
104
  # rdoc-file=lib/minitest/assertions.rb
99
105
  # - assert_equal(exp, act, msg = nil)
@@ -195,7 +201,7 @@ module Minitest::Assertions
195
201
  #
196
202
  # See also: #assert_silent
197
203
  #
198
- def assert_output: (?untyped? stdout, ?untyped? stderr) { () -> untyped } -> untyped
204
+ def assert_output: (?untyped? stdout, ?untyped? stderr) ?{ () -> untyped } -> untyped
199
205
 
200
206
  # <!--
201
207
  # rdoc-file=lib/minitest/assertions.rb
@@ -205,6 +211,25 @@ module Minitest::Assertions
205
211
  #
206
212
  def assert_path_exists: (untyped path, ?untyped? msg) -> untyped
207
213
 
214
+ # <!--
215
+ # rdoc-file=lib/minitest/assertions.rb
216
+ # - assert_pattern() { || ... }
217
+ # -->
218
+ # For testing with pattern matching (only supported with Ruby 3.0 and later)
219
+ #
220
+ # # pass
221
+ # assert_pattern { [1,2,3] => [Integer, Integer, Integer] }
222
+ #
223
+ # # fail "length mismatch (given 3, expected 1)"
224
+ # assert_pattern { [1,2,3] => [Integer] }
225
+ #
226
+ # The bare `=>` pattern will raise a NoMatchingPatternError on failure, which
227
+ # would normally be counted as a test error. This assertion rescues
228
+ # NoMatchingPatternError and generates a test failure. Any other exception will
229
+ # be raised as normal and generate a test error.
230
+ #
231
+ def assert_pattern: () ?{ () -> untyped } -> untyped
232
+
208
233
  # <!--
209
234
  # rdoc-file=lib/minitest/assertions.rb
210
235
  # - assert_predicate(o1, op, msg = nil)
@@ -243,15 +268,16 @@ module Minitest::Assertions
243
268
  #
244
269
  # assert_equal 'This is really bad', error.message
245
270
  #
246
- def assert_raises: (*untyped exp) { () -> untyped } -> untyped
271
+ def assert_raises: (*untyped exp) ?{ () -> untyped } -> untyped
247
272
 
248
273
  # <!--
249
274
  # rdoc-file=lib/minitest/assertions.rb
250
- # - assert_respond_to(obj, meth, msg = nil)
275
+ # - assert_respond_to(obj, meth, msg = nil, include_all: false)
251
276
  # -->
252
- # Fails unless `obj` responds to `meth`.
277
+ # Fails unless `obj` responds to `meth`. include_all defaults to false to match
278
+ # Object#respond_to?
253
279
  #
254
- def assert_respond_to: (untyped obj, untyped meth, ?untyped? msg) -> untyped
280
+ def assert_respond_to: (untyped obj, untyped meth, ?untyped? msg, ?include_all: bool) -> untyped
255
281
 
256
282
  # <!--
257
283
  # rdoc-file=lib/minitest/assertions.rb
@@ -338,7 +364,7 @@ module Minitest::Assertions
338
364
 
339
365
  # <!--
340
366
  # rdoc-file=lib/minitest/assertions.rb
341
- # - fail_after(y,m,d,msg)
367
+ # - fail_after(y, m, d, msg)
342
368
  # -->
343
369
  # Fails after a given date (in the local time zone). This allows you to put
344
370
  # time-bombs in your tests if you need to keep something around until a later
@@ -360,7 +386,7 @@ module Minitest::Assertions
360
386
  # -->
361
387
  # Returns a proc that will output `msg` along with the default message.
362
388
  #
363
- def message: (?untyped? msg, ?untyped? ending) ?{ () -> untyped } -> untyped
389
+ def message: (?untyped? msg, ?untyped? ending) { (?) -> untyped } -> untyped
364
390
 
365
391
  # <!--
366
392
  # rdoc-file=lib/minitest/assertions.rb
@@ -455,6 +481,24 @@ module Minitest::Assertions
455
481
  #
456
482
  def refute_nil: (untyped obj, ?untyped? msg) -> untyped
457
483
 
484
+ # <!--
485
+ # rdoc-file=lib/minitest/assertions.rb
486
+ # - refute_pattern() { || ... }
487
+ # -->
488
+ # For testing with pattern matching (only supported with Ruby 3.0 and later)
489
+ #
490
+ # # pass
491
+ # refute_pattern { [1,2,3] => [String] }
492
+ #
493
+ # # fail "NoMatchingPatternError expected, but nothing was raised."
494
+ # refute_pattern { [1,2,3] => [Integer, Integer, Integer] }
495
+ #
496
+ # This assertion expects a NoMatchingPatternError exception, and will fail if
497
+ # none is raised. Any other exceptions will be raised as normal and generate a
498
+ # test error.
499
+ #
500
+ def refute_pattern: () ?{ () -> untyped } -> untyped
501
+
458
502
  # <!--
459
503
  # rdoc-file=lib/minitest/assertions.rb
460
504
  # - refute_operator(o1, op, o2 = UNDEFINED, msg = nil)
@@ -490,11 +534,12 @@ module Minitest::Assertions
490
534
 
491
535
  # <!--
492
536
  # rdoc-file=lib/minitest/assertions.rb
493
- # - refute_respond_to(obj, meth, msg = nil)
537
+ # - refute_respond_to(obj, meth, msg = nil, include_all: false)
494
538
  # -->
495
- # Fails if `obj` responds to the message `meth`.
539
+ # Fails if `obj` responds to the message `meth`. include_all defaults to false
540
+ # to match Object#respond_to?
496
541
  #
497
- def refute_respond_to: (untyped obj, untyped meth, ?untyped? msg) -> untyped
542
+ def refute_respond_to: (untyped obj, untyped meth, ?untyped? msg, ?include_all: bool) -> untyped
498
543
 
499
544
  # <!--
500
545
  # rdoc-file=lib/minitest/assertions.rb
@@ -506,16 +551,16 @@ module Minitest::Assertions
506
551
 
507
552
  # <!--
508
553
  # rdoc-file=lib/minitest/assertions.rb
509
- # - skip(msg = nil, bt = caller)
554
+ # - skip(msg = nil, _ignored = nil)
510
555
  # -->
511
556
  # Skips the current run. If run in verbose-mode, the skipped run gets listed at
512
557
  # the end of the run but doesn't cause a failure exit code.
513
558
  #
514
- def skip: (?untyped? msg, ?untyped bt) -> untyped
559
+ def skip: (?untyped? msg, ?untyped? _ignored) -> untyped
515
560
 
516
561
  # <!--
517
562
  # rdoc-file=lib/minitest/assertions.rb
518
- # - skip_until(y,m,d,msg)
563
+ # - skip_until(y, m, d, msg)
519
564
  # -->
520
565
  # Skips the current run until a given date (in the local time zone). This allows
521
566
  # you to put some fixes on hold until a later date, but still holds you
@@ -4,6 +4,8 @@
4
4
  # See Minitest.backtrace_filter=.
5
5
  #
6
6
  class Minitest::BacktraceFilter
7
+ def initialize: (?untyped regexp) -> void
8
+
7
9
  # <!--
8
10
  # rdoc-file=lib/minitest.rb
9
11
  # - filter(bt)
@@ -12,5 +14,10 @@ class Minitest::BacktraceFilter
12
14
  # $MT_DEBUG (env).
13
15
  #
14
16
  def filter: (untyped bt) -> (::Array["No backtrace"] | untyped)
17
+
18
+ # <!-- rdoc-file=lib/minitest.rb -->
19
+ # The regular expression to use to filter backtraces. Defaults to `MT_RE`.
20
+ #
21
+ attr_accessor regexp: untyped
15
22
  MT_RE: Regexp
16
23
  end
@@ -12,7 +12,7 @@ class Minitest::BenchSpec < ::Minitest::Benchmark
12
12
  #
13
13
  # See ::bench_performance_linear for an example of how to use this.
14
14
  #
15
- def self.bench: (untyped name) ?{ () -> untyped } -> untyped
15
+ def self.bench: (untyped name) { (?) -> untyped } -> untyped
16
16
 
17
17
  # <!--
18
18
  # rdoc-file=lib/minitest/benchmark.rb
@@ -26,7 +26,7 @@ class Minitest::BenchSpec < ::Minitest::Benchmark
26
26
  #
27
27
  # See Minitest::Benchmark#bench_range for more details.
28
28
  #
29
- def self.bench_range: () ?{ () -> untyped } -> untyped
29
+ def self.bench_range: () ?{ (?) -> untyped } -> untyped
30
30
 
31
31
  # <!--
32
32
  # rdoc-file=lib/minitest/benchmark.rb
@@ -40,7 +40,7 @@ class Minitest::BenchSpec < ::Minitest::Benchmark
40
40
  # end
41
41
  # end
42
42
  #
43
- def self.bench_performance_linear: (untyped name, ?::Float threshold) ?{ () -> untyped } -> untyped
43
+ def self.bench_performance_linear: (untyped name, ?::Float threshold) { (?) -> untyped } -> untyped
44
44
 
45
45
  # <!--
46
46
  # rdoc-file=lib/minitest/benchmark.rb
@@ -54,7 +54,7 @@ class Minitest::BenchSpec < ::Minitest::Benchmark
54
54
  # end
55
55
  # end
56
56
  #
57
- def self.bench_performance_constant: (untyped name, ?::Float threshold) ?{ () -> untyped } -> untyped
57
+ def self.bench_performance_constant: (untyped name, ?::Float threshold) { (?) -> untyped } -> untyped
58
58
 
59
59
  # <!--
60
60
  # rdoc-file=lib/minitest/benchmark.rb
@@ -68,7 +68,7 @@ class Minitest::BenchSpec < ::Minitest::Benchmark
68
68
  # end
69
69
  # end
70
70
  #
71
- def self.bench_performance_exponential: (untyped name, ?::Float threshold) ?{ () -> untyped } -> untyped
71
+ def self.bench_performance_exponential: (untyped name, ?::Float threshold) { (?) -> untyped } -> untyped
72
72
 
73
73
  # <!--
74
74
  # rdoc-file=lib/minitest/benchmark.rb
@@ -82,7 +82,7 @@ class Minitest::BenchSpec < ::Minitest::Benchmark
82
82
  # end
83
83
  # end
84
84
  #
85
- def self.bench_performance_logarithmic: (untyped name, ?::Float threshold) ?{ () -> untyped } -> untyped
85
+ def self.bench_performance_logarithmic: (untyped name, ?::Float threshold) { (?) -> untyped } -> untyped
86
86
 
87
87
  # <!--
88
88
  # rdoc-file=lib/minitest/benchmark.rb
@@ -96,7 +96,7 @@ class Minitest::BenchSpec < ::Minitest::Benchmark
96
96
  # end
97
97
  # end
98
98
  #
99
- def self.bench_performance_power: (untyped name, ?::Float threshold) ?{ () -> untyped } -> untyped
100
- include Minitest::Spec::DSL::InstanceMethods
99
+ def self.bench_performance_power: (untyped name, ?::Float threshold) { (?) -> untyped } -> untyped
101
100
  extend Minitest::Spec::DSL
101
+ include Minitest::Spec::DSL::InstanceMethods
102
102
  end
@@ -5,6 +5,7 @@
5
5
  # See Minitest::Assertions
6
6
  #
7
7
  class Minitest::Benchmark < ::Minitest::Test
8
+ self.@io: untyped
8
9
  def self.io: () -> untyped
9
10
  def io: () -> untyped
10
11
  def self.run: (untyped reporter, ?::Hash[untyped, untyped] options) -> untyped
@@ -63,7 +64,7 @@ class Minitest::Benchmark < ::Minitest::Test
63
64
  # end
64
65
  # end
65
66
  #
66
- def assert_performance: (untyped validation) ?{ () -> untyped } -> untyped
67
+ def assert_performance: (untyped validation) { (?) -> untyped } -> untyped
67
68
 
68
69
  # <!--
69
70
  # rdoc-file=lib/minitest/benchmark.rb
@@ -91,7 +92,7 @@ class Minitest::Benchmark < ::Minitest::Test
91
92
  # end
92
93
  # end
93
94
  #
94
- def assert_performance_constant: (?::Float threshold) ?{ () -> untyped } -> untyped
95
+ def assert_performance_constant: (?::Float threshold) { (?) -> untyped } -> untyped
95
96
 
96
97
  # <!--
97
98
  # rdoc-file=lib/minitest/benchmark.rb
@@ -112,7 +113,7 @@ class Minitest::Benchmark < ::Minitest::Test
112
113
  # end
113
114
  # end
114
115
  #
115
- def assert_performance_exponential: (?::Float threshold) ?{ () -> untyped } -> untyped
116
+ def assert_performance_exponential: (?::Float threshold) { (?) -> untyped } -> untyped
116
117
 
117
118
  # <!--
118
119
  # rdoc-file=lib/minitest/benchmark.rb
@@ -133,7 +134,7 @@ class Minitest::Benchmark < ::Minitest::Test
133
134
  # end
134
135
  # end
135
136
  #
136
- def assert_performance_logarithmic: (?::Float threshold) ?{ () -> untyped } -> untyped
137
+ def assert_performance_logarithmic: (?::Float threshold) { (?) -> untyped } -> untyped
137
138
 
138
139
  # <!--
139
140
  # rdoc-file=lib/minitest/benchmark.rb
@@ -154,7 +155,7 @@ class Minitest::Benchmark < ::Minitest::Test
154
155
  # end
155
156
  # end
156
157
  #
157
- def assert_performance_linear: (?::Float threshold) ?{ () -> untyped } -> untyped
158
+ def assert_performance_linear: (?::Float threshold) { (?) -> untyped } -> untyped
158
159
 
159
160
  # <!--
160
161
  # rdoc-file=lib/minitest/benchmark.rb
@@ -175,7 +176,7 @@ class Minitest::Benchmark < ::Minitest::Test
175
176
  # end
176
177
  # end
177
178
  #
178
- def assert_performance_power: (?::Float threshold) ?{ () -> untyped } -> untyped
179
+ def assert_performance_power: (?::Float threshold) { (?) -> untyped } -> untyped
179
180
 
180
181
  # <!--
181
182
  # rdoc-file=lib/minitest/benchmark.rb
@@ -183,7 +184,7 @@ class Minitest::Benchmark < ::Minitest::Test
183
184
  # -->
184
185
  # Takes an array of x/y pairs and calculates the general R^2 value.
185
186
  #
186
- # See: http://en.wikipedia.org/wiki/Coefficient_of_determination
187
+ # See: https://en.wikipedia.org/wiki/Coefficient_of_determination
187
188
  #
188
189
  def fit_error: (untyped xys) { (untyped) -> untyped } -> untyped
189
190
 
@@ -195,9 +196,9 @@ class Minitest::Benchmark < ::Minitest::Test
195
196
  #
196
197
  # Takes x and y values and returns [a, b, r^2].
197
198
  #
198
- # See: http://mathworld.wolfram.com/LeastSquaresFittingExponential.html
199
+ # See: https://mathworld.wolfram.com/LeastSquaresFittingExponential.html
199
200
  #
200
- def fit_exponential: (untyped xs, untyped ys) -> untyped
201
+ def fit_exponential: (untyped xs, untyped ys) -> ::Array[untyped]
201
202
 
202
203
  # <!--
203
204
  # rdoc-file=lib/minitest/benchmark.rb
@@ -207,9 +208,9 @@ class Minitest::Benchmark < ::Minitest::Test
207
208
  #
208
209
  # Takes x and y values and returns [a, b, r^2].
209
210
  #
210
- # See: http://mathworld.wolfram.com/LeastSquaresFittingLogarithmic.html
211
+ # See: https://mathworld.wolfram.com/LeastSquaresFittingLogarithmic.html
211
212
  #
212
- def fit_logarithmic: (untyped xs, untyped ys) -> untyped
213
+ def fit_logarithmic: (untyped xs, untyped ys) -> ::Array[untyped]
213
214
 
214
215
  # <!--
215
216
  # rdoc-file=lib/minitest/benchmark.rb
@@ -219,9 +220,9 @@ class Minitest::Benchmark < ::Minitest::Test
219
220
  #
220
221
  # Takes x and y values and returns [a, b, r^2].
221
222
  #
222
- # See: http://mathworld.wolfram.com/LeastSquaresFitting.html
223
+ # See: https://mathworld.wolfram.com/LeastSquaresFitting.html
223
224
  #
224
- def fit_linear: (untyped xs, untyped ys) -> untyped
225
+ def fit_linear: (untyped xs, untyped ys) -> ::Array[untyped]
225
226
 
226
227
  # <!--
227
228
  # rdoc-file=lib/minitest/benchmark.rb
@@ -231,9 +232,9 @@ class Minitest::Benchmark < ::Minitest::Test
231
232
  #
232
233
  # Takes x and y values and returns [a, b, r^2].
233
234
  #
234
- # See: http://mathworld.wolfram.com/LeastSquaresFittingPowerLaw.html
235
+ # See: https://mathworld.wolfram.com/LeastSquaresFittingPowerLaw.html
235
236
  #
236
- def fit_power: (untyped xs, untyped ys) -> untyped
237
+ def fit_power: (untyped xs, untyped ys) -> ::Array[untyped]
237
238
 
238
239
  # <!--
239
240
  # rdoc-file=lib/minitest/benchmark.rb
@@ -245,7 +246,7 @@ class Minitest::Benchmark < ::Minitest::Test
245
246
  # sigma([1, 2, 3]) # => 1 + 2 + 3 => 6
246
247
  # sigma([1, 2, 3]) { |n| n ** 2 } # => 1 + 4 + 9 => 14
247
248
  #
248
- def sigma: (untyped enum) ?{ () -> untyped } -> untyped
249
+ def sigma: (untyped enum) ?{ (?) -> untyped } -> untyped
249
250
 
250
251
  # <!--
251
252
  # rdoc-file=lib/minitest/benchmark.rb
@@ -0,0 +1,13 @@
1
+ # <!-- rdoc-file=lib/minitest/compress.rb -->
2
+ # Compresses backtraces.
3
+ #
4
+ module Minitest::Compress
5
+ # <!--
6
+ # rdoc-file=lib/minitest/compress.rb
7
+ # - compress(orig)
8
+ # -->
9
+ # Takes a backtrace (array of strings) and compresses repeating cycles in it to
10
+ # make it more readable.
11
+ #
12
+ def compress: (untyped orig) -> untyped
13
+ end
@@ -0,0 +1,3 @@
1
+ module Minitest::ErrorOnWarning
2
+ def warn: (untyped message, ?category: untyped?) -> untyped
3
+ end
@@ -4,15 +4,19 @@
4
4
  # All mock objects are an instance of Mock
5
5
  #
6
6
  class Minitest::Mock
7
+ @@KW_WARNED: untyped
8
+ @delegator: untyped
9
+ @expected_calls: untyped
10
+ @actual_calls: untyped
7
11
  alias __respond_to? respond_to?
8
12
  def initialize: (?untyped? delegator) -> void
9
13
 
10
14
  # <!--
11
15
  # rdoc-file=lib/minitest/mock.rb
12
- # - expect(name, retval, args = [], &blk)
16
+ # - expect(name, retval, args = [], **kwargs, &blk)
13
17
  # -->
14
- # Expect that method `name` is called, optionally with `args` or a `blk`, and
15
- # returns `retval`.
18
+ # Expect that method `name` is called, optionally with `args` (and `kwargs` or a
19
+ # `blk`), and returns `retval`.
16
20
  #
17
21
  # @mock.expect(:meaning_of_life, 42)
18
22
  # @mock.meaning_of_life # => 42
@@ -44,7 +48,7 @@ class Minitest::Mock
44
48
  # @mock.ordinal_increment # => 'second'
45
49
  # @mock.ordinal_increment # => raises MockExpectationError "No more expects available for :ordinal_increment"
46
50
  #
47
- def expect: (untyped name, untyped retval, ?untyped args) ?{ () -> untyped } -> self
51
+ def expect: (untyped name, untyped retval, ?untyped args, **untyped kwargs) ?{ (?) -> untyped } -> self
48
52
  def __call: (untyped name, untyped data) -> untyped
49
53
 
50
54
  # <!--
@@ -55,6 +59,6 @@ class Minitest::Mock
55
59
  # if the mock object was not called as expected.
56
60
  #
57
61
  def verify: () -> true
58
- def method_missing: (untyped sym, *untyped args) ?{ () -> untyped } -> untyped
62
+ def method_missing: (untyped sym, *untyped args, **untyped kwargs) { (?) -> untyped } -> untyped
59
63
  def respond_to?: (untyped sym, ?bool include_private) -> (true | untyped)
60
64
  end
@@ -2,6 +2,10 @@
2
2
  # The engine used to run multiple tests in parallel.
3
3
  #
4
4
  class Minitest::Parallel::Executor
5
+ @size: untyped
6
+ @queue: untyped
7
+ @pool: untyped
8
+
5
9
  # <!--
6
10
  # rdoc-file=lib/minitest/parallel.rb
7
11
  # - new(size)
@@ -1,5 +1,4 @@
1
1
  module Minitest::Parallel::Test::ClassMethods
2
- # :nodoc:
3
2
  def run_one_method: (untyped klass, untyped method_name, untyped reporter) -> untyped
4
3
 
5
4
  def test_order: () -> :parallel
@@ -2,6 +2,14 @@
2
2
  # Show your testing pride!
3
3
  #
4
4
  class Minitest::PrideIO
5
+ self.@pride: untyped
6
+ @io: untyped
7
+ # stolen from /System/Library/Perl/5.10.0/Term/ANSIColor.pm
8
+ # also reference https://en.wikipedia.org/wiki/ANSI_escape_code
9
+ @colors: untyped
10
+ @size: untyped
11
+ @index: untyped
12
+
5
13
  # <!--
6
14
  # rdoc-file=lib/minitest/pride_plugin.rb
7
15
  # - pride!()
@@ -4,6 +4,8 @@
4
4
  # (Inspired by lolcat, but with clean math)
5
5
  #
6
6
  class Minitest::PrideLOL < ::Minitest::PrideIO
7
+ @colors: untyped
8
+ @index: untyped
7
9
  def initialize: (untyped io) -> void
8
10
 
9
11
  # <!--
@@ -6,6 +6,6 @@
6
6
  # composite and replace it with your own.
7
7
  #
8
8
  class Minitest::ProgressReporter < ::Minitest::Reporter
9
- def prerecord: (untyped klass, untyped name) -> (untyped | nil)
9
+ def prerecord: (untyped klass, untyped name) -> (nil | untyped)
10
10
  def record: (untyped result) -> untyped
11
11
  end
@@ -48,4 +48,6 @@ module Minitest::Reportable
48
48
  # Did this run error?
49
49
  #
50
50
  def error?: () -> untyped
51
+
52
+ BASE_DIR: String
51
53
  end
@@ -6,6 +6,11 @@
6
6
  # Runnable.runnables.
7
7
  #
8
8
  class Minitest::Runnable
9
+ @@runnables: untyped
10
+ @@marshal_dump_warned: untyped
11
+ self.@_info_handler: untyped
12
+ @NAME: untyped
13
+ @metadata: untyped
9
14
  def time_it: () { () -> untyped } -> untyped
10
15
 
11
16
  # <!--
@@ -52,7 +57,16 @@ class Minitest::Runnable
52
57
  # Minitest::ParallelTest::ClassMethods for an example.
53
58
  #
54
59
  def self.run_one_method: (untyped klass, untyped method_name, untyped reporter) -> untyped
55
- def self.with_info_handler: (untyped reporter) ?{ () -> untyped } -> untyped
60
+
61
+ # <!--
62
+ # rdoc-file=lib/minitest.rb
63
+ # - test_order()
64
+ # -->
65
+ # Defines the order to run tests (:random by default). Override this or use a
66
+ # convenience method to change it for your tests.
67
+ #
68
+ def self.test_order: () -> :random
69
+ def self.with_info_handler: (untyped reporter) { (?) -> untyped } -> untyped
56
70
  def self.on_signal: (untyped name, untyped action) { () -> untyped } -> untyped
57
71
 
58
72
  # <!--
@@ -76,6 +90,19 @@ class Minitest::Runnable
76
90
  def failure: () -> untyped
77
91
  def initialize: (untyped name) -> void
78
92
 
93
+ # <!-- rdoc-file=lib/minitest.rb -->
94
+ # Sets metadata, mainly used for `Result.from`.
95
+ #
96
+ def metadata: () -> untyped
97
+
98
+ # <!--
99
+ # rdoc-file=lib/minitest.rb
100
+ # - metadata?()
101
+ # -->
102
+ # Returns true if metadata exists.
103
+ #
104
+ def metadata?: () -> untyped
105
+
79
106
  # <!--
80
107
  # rdoc-file=lib/minitest.rb
81
108
  # - run()
@@ -127,5 +154,10 @@ class Minitest::Runnable
127
154
  # The time it took to run.
128
155
  #
129
156
  attr_accessor time: untyped
157
+
158
+ # <!-- rdoc-file=lib/minitest.rb -->
159
+ # Sets metadata, mainly used for `Result.from`.
160
+ #
161
+ attr_writer metadata: untyped
130
162
  SIGNALS: Hash[String, Integer]
131
163
  end
@@ -28,7 +28,7 @@ module Minitest::Spec::DSL::InstanceMethods
28
28
  # value(1 + 1).must_equal 2
29
29
  # expect(1 + 1).must_equal 2
30
30
  #
31
- def _: (?untyped? value) ?{ () -> untyped } -> untyped
31
+ def _: (?untyped? value) ?{ (?) -> untyped } -> untyped
32
32
 
33
33
  # <!--
34
34
  # rdoc-file=lib/minitest/spec.rb