Skip to content

Commit 71e2caa

Browse files
VLanvinmeta-codesync[bot]
authored andcommitted
Remove opaque type tests
Summary: As title. The opaque type tests are cumbersome to maintain since their results change with OTP changes. Reviewed By: TD5 Differential Revision: D85772507 fbshipit-source-id: c2dd37965e57eed59a4fe2c7674941ded35f7afe
1 parent 2d8eb17 commit 71e2caa

File tree

2 files changed

+46
-132
lines changed

2 files changed

+46
-132
lines changed

crates/elp/src/resources/test/eqwalizer_tests/check/refine.pretty

Lines changed: 46 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -241,84 +241,25 @@ Expression has type: {'cons', 'nil' | my_list()}
241241
Context expected type: number()
242242

243243
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
244-
┌─ check/src/refine.erl:177:24
244+
┌─ check/src/refine.erl:175:31
245245
246-
177 │ opaque1_neg({X, _}) -> X.
247-
│ ^ X.
248-
Expression has type: number()
249-
Context expected type: pid()
250-
251-
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
252-
┌─ check/src/refine.erl:183:24
253-
254-
183 │ opaque2_neg([X, _]) -> X.
255-
│ ^
256-
│ │
257-
│ X.
258-
Expression has type: erl_anno:annotation()
259-
Context expected type: pid()
260-
261-
262-
Because in the expression's type:
263-
Here the type is: tuple()/2 | tuple()/2 | tuple()/2 | tuple()/2 | tuple()/2
264-
Context expects type: pid()
265-
No candidate of the expression's type matches the expected type.
266-
267-
------------------------------ Detailed message ------------------------------
268-
269-
erl_anno:annotation() is not compatible with pid()
270-
because
271-
{'file', erl_anno:filename()} | {'generated', erl_anno:generated()} | {'record', erl_anno:record()} | {'text', string()} | {'location', erl_anno:location()} is not compatible with pid()
272-
273-
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
274-
┌─ check/src/refine.erl:191:7
275-
276-
191 │ }) -> X.
277-
│ ^ X.
278-
Expression has type: 'set'
279-
Context expected type: pid()
280-
281-
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
282-
┌─ check/src/refine.erl:198:23
283-
284-
198 │ opaque_4_neg(X, X) -> X.
285-
│ ^
286-
│ │
287-
│ X.
288-
Expression has type: gb_sets:set(atom())
289-
Context expected type: pid()
290-
291-
292-
Because in the expression's type:
293-
Here the type is: {number(), gb_sets:gb_set_node(atom())}
294-
Context expects type: pid()
295-
296-
------------------------------ Detailed message ------------------------------
297-
298-
gb_sets:set(atom()) is not compatible with pid()
299-
because
300-
{number(), gb_sets:gb_set_node(atom())} is not compatible with pid()
301-
302-
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
303-
┌─ check/src/refine.erl:202:31
304-
305-
202 │ record_as_tuple1_neg(R, R) -> R.
246+
175 │ record_as_tuple1_neg(R, R) -> R.
306247
│ ^ R.
307248
Expression has type: #my_rec{}
308249
Context expected type: none()
309250

310251
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
311-
┌─ check/src/refine.erl:206:31
252+
┌─ check/src/refine.erl:179:31
312253
313-
206 │ record_as_tuple2_neg(R, R) -> R.
254+
179 │ record_as_tuple2_neg(R, R) -> R.
314255
│ ^ R.
315256
Expression has type: #my_rec{}
316257
Context expected type: none()
317258

318259
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
319-
┌─ check/src/refine.erl:222:28
260+
┌─ check/src/refine.erl:195:28
320261
321-
222 │ record_as_tuple6_neg(R) -> R.
262+
195 │ record_as_tuple6_neg(R) -> R.
322263
│ ^
323264
│ │
324265
│ R.
@@ -340,22 +281,22 @@ Because in the expression's type:
340281
'my_rec' is not compatible with 'not_my_rec'
341282

342283
error: unknown_id (See https://fb.me/eqwalizer_errors#unknown_id)
343-
┌─ check/src/refine.erl:226:10
284+
┌─ check/src/refine.erl:199:10
344285
345-
226 │ i :: unknown:unknown()
286+
199 │ i :: unknown:unknown()
346287
│ ^^^^^^^^^^^^^^^^^ Unknown id: unknown:unknown/0
347288

348289
error: reference_to_invalid_type (See https://fb.me/eqwalizer_errors#reference_to_invalid_type)
349-
┌─ check/src/refine.erl:228:1
290+
┌─ check/src/refine.erl:201:1
350291
351-
228 │ ╭ -spec record_as_tuple7_neg
352-
229 │ │ (#bad_rec{}) -> {bad_rec, atom()}.
292+
201 │ ╭ -spec record_as_tuple7_neg
293+
202 │ │ (#bad_rec{}) -> {bad_rec, atom()}.
353294
│ ╰─────────────────────────────────^ record_as_tuple7_neg/1 references type with invalid definition: #bad_rec{}
354295

355296
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
356-
┌─ check/src/refine.erl:240:28
297+
┌─ check/src/refine.erl:213:28
357298
358-
240 │ tuple_as_record2_neg(R) -> R.
299+
213 │ tuple_as_record2_neg(R) -> R.
359300
│ ^
360301
│ │
361302
│ R.
@@ -377,49 +318,49 @@ Because in the expression's type:
377318
atom() is not compatible with number()
378319

379320
error: clause_not_covered (See https://fb.me/eqwalizer_errors#clause_not_covered)
380-
┌─ check/src/refine.erl:245:1
321+
┌─ check/src/refine.erl:218:1
381322
382-
245 │ ╭ tup_guard_record1(X)
383-
246 │ │ when is_record(X, my_rec) ->
384-
247 │ │ X * 2.
323+
218 │ ╭ tup_guard_record1(X)
324+
219 │ │ when is_record(X, my_rec) ->
325+
220 │ │ X * 2.
385326
│ ╰─────────^ Clause is not covered by spec
386327

387328
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
388-
┌─ check/src/refine.erl:253:5
329+
┌─ check/src/refine.erl:226:5
389330
390-
253 │ X * 2.
331+
226 │ X * 2.
391332
│ ^ X.
392333
Expression has type: #my_rec{}
393334
Context expected type: number()
394335

395336
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
396-
┌─ check/src/refine.erl:259:5
337+
┌─ check/src/refine.erl:232:5
397338
398-
259 │ X * 2.
339+
232 │ X * 2.
399340
│ ^ X.
400341
Expression has type: #my_rec{}
401342
Context expected type: number()
402343

403344
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
404-
┌─ check/src/refine.erl:262:14
345+
┌─ check/src/refine.erl:235:14
405346
406-
262 │ ftt(X, _) -> X.
347+
235 │ ftt(X, _) -> X.
407348
│ ^ X.
408349
Expression has type: fun((T) -> 'ok')
409350
Context expected type: T
410351

411352
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
412-
┌─ check/src/refine.erl:265:20
353+
┌─ check/src/refine.erl:238:20
413354
414-
265 │ my_rec_to_ok(X) -> X.
355+
238 │ my_rec_to_ok(X) -> X.
415356
│ ^ X.
416357
Expression has type: #my_rec{}
417358
Context expected type: 'ok'
418359

419360
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
420-
┌─ check/src/refine.erl:277:26
361+
┌─ check/src/refine.erl:250:26
421362
422-
277 │ use2_neg(F, X) -> ftt(F, X).
363+
250 │ use2_neg(F, X) -> ftt(F, X).
423364
│ ^
424365
│ │
425366
│ X.
@@ -441,9 +382,9 @@ Because in the expression's type:
441382
atom() is not compatible with number()
442383

443384
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
444-
┌─ check/src/refine.erl:277:26
385+
┌─ check/src/refine.erl:250:26
445386
446-
277 │ use2_neg(F, X) -> ftt(F, X).
387+
250 │ use2_neg(F, X) -> ftt(F, X).
447388
│ ^
448389
│ │
449390
│ X.
@@ -467,9 +408,9 @@ Because in the expression's type:
467408
atom() is not compatible with number()
468409

469410
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
470-
┌─ check/src/refine.erl:289:26
411+
┌─ check/src/refine.erl:262:26
471412
472-
289 │ use4_neg(F, X) -> ftt(F, X).
413+
262 │ use4_neg(F, X) -> ftt(F, X).
473414
│ ^
474415
│ │
475416
│ X.
@@ -491,9 +432,9 @@ Because in the expression's type:
491432
number() is not compatible with atom()
492433

493434
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
494-
┌─ check/src/refine.erl:289:26
435+
┌─ check/src/refine.erl:262:26
495436
496-
289 │ use4_neg(F, X) -> ftt(F, X).
437+
262 │ use4_neg(F, X) -> ftt(F, X).
497438
│ ^
498439
│ │
499440
│ X.
@@ -517,9 +458,9 @@ Because in the expression's type:
517458
number() is not compatible with atom()
518459

519460
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
520-
┌─ check/src/refine.erl:305:21
461+
┌─ check/src/refine.erl:278:21
521462
522-
305 │ use6_neg(X) -> ttt2(X, x).
463+
278 │ use6_neg(X) -> ttt2(X, x).
523464
│ ^
524465
│ │
525466
│ X.
@@ -541,9 +482,9 @@ Because in the expression's type:
541482
number() is not compatible with atom()
542483

543484
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
544-
┌─ check/src/refine.erl:309:16
485+
┌─ check/src/refine.erl:282:16
545486
546-
309 │ use7_neg(X) -> ttt1(X, 1).
487+
282 │ use7_neg(X) -> ttt1(X, 1).
547488
│ ^^^^^^^^^^
548489
│ │
549490
│ ttt1(X, 1).
@@ -563,9 +504,9 @@ Because in the expression's type:
563504
atom() is not compatible with number()
564505

565506
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
566-
┌─ check/src/refine.erl:313:13
507+
┌─ check/src/refine.erl:286:13
567508
568-
313 │ deets(X) -> X.
509+
286 │ deets(X) -> X.
569510
│ ^
570511
│ │
571512
│ X.
@@ -585,9 +526,9 @@ Because in the expression's type:
585526
'a' is not compatible with {'my_rec', term(), term()}
586527

587528
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
588-
┌─ check/src/refine.erl:323:5
529+
┌─ check/src/refine.erl:296:5
589530
590-
323 │ B.
531+
296 │ B.
591532
│ ^
592533
│ │
593534
│ B.
@@ -607,17 +548,17 @@ Because in the expression's type:
607548
'undefined' is not compatible with binary()
608549

609550
error: reveal_type (See https://fb.me/eqwalizer_errors#reveal_type)
610-
┌─ check/src/refine.erl:405:27
551+
┌─ check/src/refine.erl:378:27
611552
612-
405 │ eqwalizer:reveal_type(Name),
553+
378 │ eqwalizer:reveal_type(Name),
613554
│ ^^^^ atom()
614555

615556
error: incompatible_types (See https://fb.me/eqwalizer_errors#incompatible_types)
616-
┌─ check/src/refine.erl:406:5
557+
┌─ check/src/refine.erl:379:5
617558
618-
406 │ Name.
559+
379 │ Name.
619560
│ ^^^^ Name.
620561
Expression has type: atom()
621562
Context expected type: 'ok'
622563

623-
41 ERRORS
564+
37 ERRORS

test_projects/eqwalizer_tests/check/src/refine.erl

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -170,33 +170,6 @@ exploit_recursive() ->
170170
refine_recursive_neg({cons, nil}) + 1,
171171
ok.
172172

173-
% returns a number
174-
-spec opaque1_neg(
175-
gb_sets:set(atom())) ->
176-
pid().
177-
opaque1_neg({X, _}) -> X.
178-
179-
% returns a tuple
180-
-spec opaque2_neg(
181-
erl_anno:anno()) ->
182-
pid().
183-
opaque2_neg([X, _]) -> X.
184-
185-
% returns an atom
186-
-spec opaque_3_neg(
187-
sets:set(atom())
188-
) -> pid().
189-
opaque_3_neg({
190-
X, _, _, _, _, _, _, _, _
191-
}) -> X.
192-
193-
% returns a 2-tuple
194-
-spec opaque_4_neg(
195-
gb_sets:set(atom()),
196-
{term(), term()}
197-
) -> pid().
198-
opaque_4_neg(X, X) -> X.
199-
200173
-spec record_as_tuple1_neg
201174
(#my_rec{}, tuple()) -> none().
202175
record_as_tuple1_neg(R, R) -> R.

0 commit comments

Comments
 (0)