steep 0.16.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +0 -3
  3. data/CHANGELOG.md +24 -0
  4. data/Rakefile +0 -13
  5. data/bin/setup +0 -2
  6. data/bin/smoke_runner.rb +0 -1
  7. data/exe/steep +0 -1
  8. data/lib/steep.rb +1 -1
  9. data/lib/steep/drivers/check.rb +1 -12
  10. data/lib/steep/drivers/watch.rb +2 -2
  11. data/lib/steep/project/file.rb +1 -1
  12. data/lib/steep/project/hover_content.rb +1 -1
  13. data/lib/steep/project/options.rb +15 -0
  14. data/lib/steep/server/code_worker.rb +4 -4
  15. data/lib/steep/server/signature_worker.rb +4 -4
  16. data/lib/steep/type_construction.rb +13 -19
  17. data/lib/steep/type_inference/constant_env.rb +2 -10
  18. data/lib/steep/type_inference/context.rb +1 -0
  19. data/lib/steep/version.rb +1 -1
  20. data/steep.gemspec +6 -7
  21. metadata +23 -146
  22. data/exe/rbs +0 -3
  23. data/vendor/ruby-signature/.github/workflows/ruby.yml +0 -27
  24. data/vendor/ruby-signature/.gitignore +0 -12
  25. data/vendor/ruby-signature/.rubocop.yml +0 -15
  26. data/vendor/ruby-signature/BSDL +0 -22
  27. data/vendor/ruby-signature/COPYING +0 -56
  28. data/vendor/ruby-signature/Gemfile +0 -6
  29. data/vendor/ruby-signature/README.md +0 -93
  30. data/vendor/ruby-signature/Rakefile +0 -142
  31. data/vendor/ruby-signature/bin/annotate-with-rdoc +0 -157
  32. data/vendor/ruby-signature/bin/console +0 -14
  33. data/vendor/ruby-signature/bin/query-rdoc +0 -103
  34. data/vendor/ruby-signature/bin/setup +0 -10
  35. data/vendor/ruby-signature/bin/sort +0 -89
  36. data/vendor/ruby-signature/bin/test_runner.rb +0 -16
  37. data/vendor/ruby-signature/docs/CONTRIBUTING.md +0 -97
  38. data/vendor/ruby-signature/docs/sigs.md +0 -148
  39. data/vendor/ruby-signature/docs/stdlib.md +0 -152
  40. data/vendor/ruby-signature/docs/syntax.md +0 -528
  41. data/vendor/ruby-signature/exe/rbs +0 -7
  42. data/vendor/ruby-signature/lib/rbs.rb +0 -64
  43. data/vendor/ruby-signature/lib/rbs/ast/annotation.rb +0 -27
  44. data/vendor/ruby-signature/lib/rbs/ast/comment.rb +0 -27
  45. data/vendor/ruby-signature/lib/rbs/ast/declarations.rb +0 -395
  46. data/vendor/ruby-signature/lib/rbs/ast/members.rb +0 -362
  47. data/vendor/ruby-signature/lib/rbs/buffer.rb +0 -50
  48. data/vendor/ruby-signature/lib/rbs/builtin_names.rb +0 -55
  49. data/vendor/ruby-signature/lib/rbs/cli.rb +0 -558
  50. data/vendor/ruby-signature/lib/rbs/constant.rb +0 -26
  51. data/vendor/ruby-signature/lib/rbs/constant_table.rb +0 -150
  52. data/vendor/ruby-signature/lib/rbs/definition.rb +0 -170
  53. data/vendor/ruby-signature/lib/rbs/definition_builder.rb +0 -919
  54. data/vendor/ruby-signature/lib/rbs/environment.rb +0 -281
  55. data/vendor/ruby-signature/lib/rbs/environment_loader.rb +0 -136
  56. data/vendor/ruby-signature/lib/rbs/environment_walker.rb +0 -124
  57. data/vendor/ruby-signature/lib/rbs/errors.rb +0 -187
  58. data/vendor/ruby-signature/lib/rbs/location.rb +0 -102
  59. data/vendor/ruby-signature/lib/rbs/method_type.rb +0 -123
  60. data/vendor/ruby-signature/lib/rbs/namespace.rb +0 -91
  61. data/vendor/ruby-signature/lib/rbs/parser.y +0 -1344
  62. data/vendor/ruby-signature/lib/rbs/prototype/rb.rb +0 -553
  63. data/vendor/ruby-signature/lib/rbs/prototype/rbi.rb +0 -587
  64. data/vendor/ruby-signature/lib/rbs/prototype/runtime.rb +0 -381
  65. data/vendor/ruby-signature/lib/rbs/substitution.rb +0 -46
  66. data/vendor/ruby-signature/lib/rbs/test.rb +0 -26
  67. data/vendor/ruby-signature/lib/rbs/test/errors.rb +0 -61
  68. data/vendor/ruby-signature/lib/rbs/test/hook.rb +0 -294
  69. data/vendor/ruby-signature/lib/rbs/test/setup.rb +0 -58
  70. data/vendor/ruby-signature/lib/rbs/test/spy.rb +0 -325
  71. data/vendor/ruby-signature/lib/rbs/test/test_helper.rb +0 -183
  72. data/vendor/ruby-signature/lib/rbs/test/type_check.rb +0 -254
  73. data/vendor/ruby-signature/lib/rbs/type_name.rb +0 -70
  74. data/vendor/ruby-signature/lib/rbs/types.rb +0 -936
  75. data/vendor/ruby-signature/lib/rbs/variance_calculator.rb +0 -138
  76. data/vendor/ruby-signature/lib/rbs/vendorer.rb +0 -47
  77. data/vendor/ruby-signature/lib/rbs/version.rb +0 -3
  78. data/vendor/ruby-signature/lib/rbs/writer.rb +0 -269
  79. data/vendor/ruby-signature/lib/ruby/signature.rb +0 -7
  80. data/vendor/ruby-signature/rbs.gemspec +0 -46
  81. data/vendor/ruby-signature/stdlib/abbrev/abbrev.rbs +0 -60
  82. data/vendor/ruby-signature/stdlib/base64/base64.rbs +0 -71
  83. data/vendor/ruby-signature/stdlib/benchmark/benchmark.rbs +0 -372
  84. data/vendor/ruby-signature/stdlib/builtin/array.rbs +0 -1997
  85. data/vendor/ruby-signature/stdlib/builtin/basic_object.rbs +0 -280
  86. data/vendor/ruby-signature/stdlib/builtin/binding.rbs +0 -177
  87. data/vendor/ruby-signature/stdlib/builtin/builtin.rbs +0 -45
  88. data/vendor/ruby-signature/stdlib/builtin/class.rbs +0 -145
  89. data/vendor/ruby-signature/stdlib/builtin/comparable.rbs +0 -116
  90. data/vendor/ruby-signature/stdlib/builtin/complex.rbs +0 -400
  91. data/vendor/ruby-signature/stdlib/builtin/constants.rbs +0 -37
  92. data/vendor/ruby-signature/stdlib/builtin/data.rbs +0 -5
  93. data/vendor/ruby-signature/stdlib/builtin/deprecated.rbs +0 -2
  94. data/vendor/ruby-signature/stdlib/builtin/dir.rbs +0 -413
  95. data/vendor/ruby-signature/stdlib/builtin/encoding.rbs +0 -607
  96. data/vendor/ruby-signature/stdlib/builtin/enumerable.rbs +0 -404
  97. data/vendor/ruby-signature/stdlib/builtin/enumerator.rbs +0 -260
  98. data/vendor/ruby-signature/stdlib/builtin/errno.rbs +0 -781
  99. data/vendor/ruby-signature/stdlib/builtin/errors.rbs +0 -582
  100. data/vendor/ruby-signature/stdlib/builtin/exception.rbs +0 -194
  101. data/vendor/ruby-signature/stdlib/builtin/false_class.rbs +0 -40
  102. data/vendor/ruby-signature/stdlib/builtin/fiber.rbs +0 -68
  103. data/vendor/ruby-signature/stdlib/builtin/fiber_error.rbs +0 -12
  104. data/vendor/ruby-signature/stdlib/builtin/file.rbs +0 -1076
  105. data/vendor/ruby-signature/stdlib/builtin/file_test.rbs +0 -59
  106. data/vendor/ruby-signature/stdlib/builtin/float.rbs +0 -696
  107. data/vendor/ruby-signature/stdlib/builtin/gc.rbs +0 -243
  108. data/vendor/ruby-signature/stdlib/builtin/hash.rbs +0 -1029
  109. data/vendor/ruby-signature/stdlib/builtin/integer.rbs +0 -707
  110. data/vendor/ruby-signature/stdlib/builtin/io.rbs +0 -683
  111. data/vendor/ruby-signature/stdlib/builtin/kernel.rbs +0 -576
  112. data/vendor/ruby-signature/stdlib/builtin/marshal.rbs +0 -161
  113. data/vendor/ruby-signature/stdlib/builtin/match_data.rbs +0 -271
  114. data/vendor/ruby-signature/stdlib/builtin/math.rbs +0 -369
  115. data/vendor/ruby-signature/stdlib/builtin/method.rbs +0 -185
  116. data/vendor/ruby-signature/stdlib/builtin/module.rbs +0 -1104
  117. data/vendor/ruby-signature/stdlib/builtin/nil_class.rbs +0 -82
  118. data/vendor/ruby-signature/stdlib/builtin/numeric.rbs +0 -409
  119. data/vendor/ruby-signature/stdlib/builtin/object.rbs +0 -824
  120. data/vendor/ruby-signature/stdlib/builtin/proc.rbs +0 -429
  121. data/vendor/ruby-signature/stdlib/builtin/process.rbs +0 -1227
  122. data/vendor/ruby-signature/stdlib/builtin/random.rbs +0 -267
  123. data/vendor/ruby-signature/stdlib/builtin/range.rbs +0 -226
  124. data/vendor/ruby-signature/stdlib/builtin/rational.rbs +0 -424
  125. data/vendor/ruby-signature/stdlib/builtin/rb_config.rbs +0 -57
  126. data/vendor/ruby-signature/stdlib/builtin/regexp.rbs +0 -1083
  127. data/vendor/ruby-signature/stdlib/builtin/ruby_vm.rbs +0 -14
  128. data/vendor/ruby-signature/stdlib/builtin/signal.rbs +0 -55
  129. data/vendor/ruby-signature/stdlib/builtin/string.rbs +0 -1901
  130. data/vendor/ruby-signature/stdlib/builtin/string_io.rbs +0 -284
  131. data/vendor/ruby-signature/stdlib/builtin/struct.rbs +0 -40
  132. data/vendor/ruby-signature/stdlib/builtin/symbol.rbs +0 -228
  133. data/vendor/ruby-signature/stdlib/builtin/thread.rbs +0 -1108
  134. data/vendor/ruby-signature/stdlib/builtin/thread_group.rbs +0 -23
  135. data/vendor/ruby-signature/stdlib/builtin/time.rbs +0 -1047
  136. data/vendor/ruby-signature/stdlib/builtin/trace_point.rbs +0 -290
  137. data/vendor/ruby-signature/stdlib/builtin/true_class.rbs +0 -46
  138. data/vendor/ruby-signature/stdlib/builtin/unbound_method.rbs +0 -153
  139. data/vendor/ruby-signature/stdlib/builtin/warning.rbs +0 -17
  140. data/vendor/ruby-signature/stdlib/coverage/coverage.rbs +0 -62
  141. data/vendor/ruby-signature/stdlib/csv/csv.rbs +0 -773
  142. data/vendor/ruby-signature/stdlib/erb/erb.rbs +0 -392
  143. data/vendor/ruby-signature/stdlib/find/find.rbs +0 -40
  144. data/vendor/ruby-signature/stdlib/ipaddr/ipaddr.rbs +0 -247
  145. data/vendor/ruby-signature/stdlib/json/json.rbs +0 -335
  146. data/vendor/ruby-signature/stdlib/pathname/pathname.rbs +0 -1093
  147. data/vendor/ruby-signature/stdlib/prime/integer-extension.rbs +0 -23
  148. data/vendor/ruby-signature/stdlib/prime/prime.rbs +0 -188
  149. data/vendor/ruby-signature/stdlib/securerandom/securerandom.rbs +0 -9
  150. data/vendor/ruby-signature/stdlib/set/set.rbs +0 -301
  151. data/vendor/ruby-signature/stdlib/tmpdir/tmpdir.rbs +0 -53
@@ -1,381 +0,0 @@
1
- module RBS
2
- module Prototype
3
- class Runtime
4
- attr_reader :patterns
5
- attr_reader :env
6
- attr_reader :merge
7
- attr_reader :owners_included
8
-
9
- def initialize(patterns:, env:, merge:, owners_included: [])
10
- @patterns = patterns
11
- @decls = nil
12
- @env = env
13
- @merge = merge
14
- @owners_included = owners_included.map do |name|
15
- Object.const_get(name)
16
- end
17
- end
18
-
19
- def target?(const)
20
- patterns.any? do |pattern|
21
- if pattern.end_with?("*")
22
- (const.name || "").start_with?(pattern.chop)
23
- else
24
- const.name == pattern
25
- end
26
- end
27
- end
28
-
29
- def builder
30
- @builder ||= DefinitionBuilder.new(env: env)
31
- end
32
-
33
- def parse(file)
34
- require file
35
- end
36
-
37
- def decls
38
- unless @decls
39
- @decls = []
40
- ObjectSpace.each_object(Module).select {|mod| target?(mod) }.sort_by(&:name).each do |mod|
41
- case mod
42
- when Class
43
- generate_class mod
44
- when Module
45
- generate_module mod
46
- end
47
- end
48
- end
49
- @decls
50
- end
51
-
52
- def to_type_name(name)
53
- *prefix, last = name.split(/::/)
54
-
55
- if prefix.empty?
56
- TypeName.new(name: last.to_sym, namespace: Namespace.empty)
57
- else
58
- TypeName.new(name: last.to_sym, namespace: Namespace.parse(prefix.join("::")))
59
- end
60
- end
61
-
62
- def each_mixin(mixins, *super_mixes)
63
- supers = Set.new(super_mixes)
64
- mixins.each do |mix|
65
- unless supers.include?(mix)
66
- yield mix
67
- end
68
- end
69
- end
70
-
71
- def method_type(method)
72
- untyped = Types::Bases::Any.new(location: nil)
73
-
74
- required_positionals = []
75
- optional_positionals = []
76
- rest = nil
77
- trailing_positionals = []
78
- required_keywords = {}
79
- optional_keywords = {}
80
- rest_keywords = nil
81
-
82
- requireds = required_positionals
83
-
84
- block = nil
85
-
86
- method.parameters.each do |kind, name|
87
- case kind
88
- when :req
89
- requireds << Types::Function::Param.new(name: name, type: untyped)
90
- when :opt
91
- requireds = trailing_positionals
92
- optional_positionals << Types::Function::Param.new(name: name, type: untyped)
93
- when :rest
94
- requireds = trailing_positionals
95
- rest = Types::Function::Param.new(name: name, type: untyped)
96
- when :keyreq
97
- required_keywords[name] = Types::Function::Param.new(name: nil, type: untyped)
98
- when :key
99
- optional_keywords[name] = Types::Function::Param.new(name: nil, type: untyped)
100
- when :keyrest
101
- rest_keywords = Types::Function::Param.new(name: nil, type: untyped)
102
- when :block
103
- block = MethodType::Block.new(
104
- type: Types::Function.empty(untyped).update(rest_positionals: Types::Function::Param.new(name: nil, type: untyped)),
105
- required: true
106
- )
107
- end
108
- end
109
-
110
- method_type = Types::Function.new(
111
- required_positionals: required_positionals,
112
- optional_positionals: optional_positionals,
113
- rest_positionals: rest,
114
- trailing_positionals: trailing_positionals,
115
- required_keywords: required_keywords,
116
- optional_keywords: optional_keywords,
117
- rest_keywords: rest_keywords,
118
- return_type: untyped
119
- )
120
-
121
- MethodType.new(
122
- location: nil,
123
- type_params: [],
124
- type: method_type,
125
- block: block
126
- )
127
- end
128
-
129
- def merge_rbs(module_name, members, instance: nil, singleton: nil)
130
- if merge
131
- if env.class?(module_name.absolute!)
132
- case
133
- when instance
134
- method = builder.build_instance(module_name.absolute!).methods[instance]
135
- method_name = instance
136
- kind = :instance
137
- when singleton
138
- method = builder.build_singleton(module_name.absolute!).methods[singleton]
139
- method_name = singleton
140
- kind = :singleton
141
- end
142
-
143
- if method
144
- members << AST::Members::MethodDefinition.new(
145
- name: method_name,
146
- types: method.method_types.map {|type|
147
- type.update.tap do |ty|
148
- def ty.to_s
149
- location.source
150
- end
151
- end
152
- },
153
- kind: kind,
154
- location: nil,
155
- comment: method.comment,
156
- annotations: method.annotations,
157
- attributes: method.attributes
158
- )
159
- return
160
- end
161
- end
162
-
163
- yield
164
- else
165
- yield
166
- end
167
- end
168
-
169
- def target_method?(mod, instance: nil, singleton: nil)
170
- case
171
- when instance
172
- method = mod.instance_method(instance)
173
- method.owner == mod || owners_included.any? {|m| method.owner == m }
174
- when singleton
175
- method = mod.singleton_class.instance_method(singleton)
176
- method.owner == mod.singleton_class || owners_included.any? {|m| method.owner == m.singleton_class }
177
- end
178
- end
179
-
180
- def generate_methods(mod, module_name, members)
181
- mod.singleton_methods.select {|name| target_method?(mod, singleton: name) }.sort.each do |name|
182
- method = mod.singleton_class.instance_method(name)
183
-
184
- if method.name == method.original_name
185
- merge_rbs(module_name, members, singleton: name) do
186
- RBS.logger.info "missing #{module_name}.#{name} #{method.source_location}"
187
-
188
- members << AST::Members::MethodDefinition.new(
189
- name: method.name,
190
- types: [method_type(method)],
191
- kind: :singleton,
192
- location: nil,
193
- comment: nil,
194
- annotations: [],
195
- attributes: []
196
- )
197
- end
198
- else
199
- members << AST::Members::Alias.new(
200
- new_name: method.name,
201
- old_name: method.original_name,
202
- kind: :singleton,
203
- location: nil,
204
- comment: nil,
205
- annotations: [],
206
- )
207
- end
208
- end
209
-
210
- public_instance_methods = mod.public_instance_methods.select {|name| target_method?(mod, instance: name) }
211
- unless public_instance_methods.empty?
212
- members << AST::Members::Public.new(location: nil)
213
-
214
- public_instance_methods.sort.each do |name|
215
- method = mod.instance_method(name)
216
-
217
- if method.name == method.original_name
218
- merge_rbs(module_name, members, instance: name) do
219
- RBS.logger.info "missing #{module_name}##{name} #{method.source_location}"
220
-
221
- members << AST::Members::MethodDefinition.new(
222
- name: method.name,
223
- types: [method_type(method)],
224
- kind: :instance,
225
- location: nil,
226
- comment: nil,
227
- annotations: [],
228
- attributes: []
229
- )
230
- end
231
- else
232
- members << AST::Members::Alias.new(
233
- new_name: method.name,
234
- old_name: method.original_name,
235
- kind: :instance,
236
- location: nil,
237
- comment: nil,
238
- annotations: [],
239
- )
240
- end
241
- end
242
- end
243
-
244
- private_instance_methods = mod.private_instance_methods.select {|name| target_method?(mod, instance: name) }
245
- unless private_instance_methods.empty?
246
- members << AST::Members::Private.new(location: nil)
247
-
248
- private_instance_methods.sort.each do |name|
249
- method = mod.instance_method(name)
250
-
251
- if method.name == method.original_name
252
- merge_rbs(module_name, members, instance: name) do
253
- RBS.logger.info "missing #{module_name}##{name} #{method.source_location}"
254
-
255
- members << AST::Members::MethodDefinition.new(
256
- name: method.name,
257
- types: [method_type(method)],
258
- kind: :instance,
259
- location: nil,
260
- comment: nil,
261
- annotations: [],
262
- attributes: []
263
- )
264
- end
265
- else
266
- members << AST::Members::Alias.new(
267
- new_name: method.name,
268
- old_name: method.original_name,
269
- kind: :instance,
270
- location: nil,
271
- comment: nil,
272
- annotations: [],
273
- )
274
- end
275
- end
276
- end
277
- end
278
-
279
- def generate_constants(mod)
280
- mod.constants(false).sort.each do |name|
281
- value = mod.const_get(name)
282
-
283
- next if value.is_a?(Class) || value.is_a?(Module)
284
- type = case value
285
- when true, false
286
- Types::Bases::Bool.new(location: nil)
287
- when nil
288
- Types::Optional.new(
289
- type: Types::Bases::Any.new(location: nil),
290
- location: nil
291
- )
292
- else
293
- Types::ClassInstance.new(name: to_type_name(value.class.to_s), args: [], location: nil)
294
- end
295
-
296
- @decls << AST::Declarations::Constant.new(
297
- name: "#{mod.to_s}::#{name}",
298
- type: type,
299
- location: nil,
300
- comment: nil
301
- )
302
- end
303
- end
304
-
305
- def generate_class(mod)
306
- type_name = to_type_name(mod.name)
307
- super_class = if mod.superclass == ::Object
308
- nil
309
- else
310
- AST::Declarations::Class::Super.new(name: to_type_name(mod.superclass.name), args: [])
311
- end
312
-
313
- decl = AST::Declarations::Class.new(
314
- name: type_name,
315
- type_params: AST::Declarations::ModuleTypeParams.empty,
316
- super_class: super_class,
317
- members: [],
318
- annotations: [],
319
- location: nil,
320
- comment: nil
321
- )
322
-
323
- each_mixin(mod.included_modules, *mod.superclass.included_modules, *mod.included_modules.flat_map(&:included_modules)) do |included_module|
324
- module_name = to_type_name(included_module.name)
325
- if module_name.namespace == type_name.namespace
326
- module_name = TypeName.new(name: module_name.name, namespace: Namespace.empty)
327
- end
328
-
329
- decl.members << AST::Members::Include.new(
330
- name: module_name,
331
- args: [],
332
- location: nil,
333
- comment: nil,
334
- annotations: []
335
- )
336
- end
337
-
338
- generate_methods(mod, type_name, decl.members)
339
-
340
- @decls << decl
341
-
342
- generate_constants mod
343
- end
344
-
345
- def generate_module(mod)
346
- type_name = to_type_name(mod.name)
347
-
348
- decl = AST::Declarations::Module.new(
349
- name: type_name,
350
- type_params: AST::Declarations::ModuleTypeParams.empty,
351
- self_type: nil,
352
- members: [],
353
- annotations: [],
354
- location: nil,
355
- comment: nil
356
- )
357
-
358
- each_mixin(mod.included_modules, *mod.included_modules.flat_map(&:included_modules), namespace: type_name.namespace) do |included_module|
359
- module_name = to_type_name(included_module.name)
360
- if module_name.namespace == type_name.namespace
361
- module_name = TypeName.new(name: module_name.name, namespace: Namespace.empty)
362
- end
363
-
364
- decl.members << AST::Members::Include.new(
365
- name: module_name,
366
- args: [],
367
- location: nil,
368
- comment: nil,
369
- annotations: []
370
- )
371
- end
372
-
373
- generate_methods(mod, type_name, decl.members)
374
-
375
- @decls << decl
376
-
377
- generate_constants mod
378
- end
379
- end
380
- end
381
- end
@@ -1,46 +0,0 @@
1
- module RBS
2
- class Substitution
3
- attr_reader :mapping
4
-
5
- def initialize()
6
- @mapping = {}
7
- end
8
-
9
- def add(from:, to:)
10
- mapping[from] = to
11
- end
12
-
13
- def self.build(variables, types, &block)
14
- unless variables.size == types.size
15
- raise "Broken substitution: variables=#{variables}, types=#{types}"
16
- end
17
-
18
- mapping = variables.zip(types).to_h
19
-
20
- self.new.tap do |subst|
21
- mapping.each do |v, t|
22
- type = block_given? ? yield(t) : t
23
- subst.add(from: v, to: type)
24
- end
25
- end
26
- end
27
-
28
- def apply(ty)
29
- case ty
30
- when Types::Variable
31
- mapping[ty.name] || ty
32
- else
33
- ty
34
- end
35
- end
36
-
37
- def without(*vars)
38
- self.class.new.tap do |subst|
39
- subst.mapping.merge!(mapping)
40
- vars.each do |var|
41
- subst.mapping.delete(var)
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,26 +0,0 @@
1
- require "rbs/test/spy"
2
- require "rbs/test/errors"
3
- require "rbs/test/type_check"
4
- require "rbs/test/hook"
5
-
6
- module RBS
7
- module Test
8
- IS_AP = Kernel.instance_method(:is_a?)
9
- DEFINE_METHOD = Module.instance_method(:define_method)
10
- INSTANCE_EVAL = BasicObject.instance_method(:instance_eval)
11
- INSTANCE_EXEC = BasicObject.instance_method(:instance_exec)
12
- METHOD = Kernel.instance_method(:method)
13
- CLASS = Kernel.instance_method(:class)
14
- SINGLETON_CLASS = Kernel.instance_method(:singleton_class)
15
- PP = Kernel.instance_method(:pp)
16
- INSPECT = Kernel.instance_method(:inspect)
17
- METHODS = Kernel.instance_method(:methods)
18
-
19
- ArgumentsReturn = Struct.new(:arguments, :return_value, :exception, keyword_init: true)
20
- CallTrace = Struct.new(:method_name, :method_call, :block_calls, :block_given, keyword_init: true)
21
-
22
- def self.call(receiver, method, *args, **kwargs, &block)
23
- method.bind_call(receiver, *args, **kwargs, &block)
24
- end
25
- end
26
- end