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
@@ -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