Commit 3c30c22
authored
Refinements to skolemizaton (#23513)
1. Deskolemize after fully defining type
The order was the opposite before. That led to skolem types escaping in
the constraint and then being installed in the inferred type of a val or
def. See #23489 for a test case where this shows up.
2. Re-use skolems generated for arguments.
Fixes #23489File tree
6 files changed
+84
-31
lines changed- compiler/src/dotty/tools/dotc
- printing
- transform/patmat
- typer
- tests/pos
6 files changed
+84
-31
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
459 | 459 | | |
460 | 460 | | |
461 | 461 | | |
462 | | - | |
463 | | - | |
464 | | - | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
465 | 469 | | |
466 | 470 | | |
467 | 471 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
570 | 570 | | |
571 | 571 | | |
572 | 572 | | |
573 | | - | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
574 | 577 | | |
575 | 578 | | |
576 | 579 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
839 | 840 | | |
840 | 841 | | |
841 | 842 | | |
842 | | - | |
843 | | - | |
| 843 | + | |
| 844 | + | |
844 | 845 | | |
845 | | - | |
846 | | - | |
| 846 | + | |
| 847 | + | |
847 | 848 | | |
848 | 849 | | |
849 | 850 | | |
850 | 851 | | |
851 | | - | |
852 | | - | |
853 | | - | |
854 | | - | |
855 | | - | |
856 | | - | |
857 | | - | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
858 | 870 | | |
859 | 871 | | |
860 | 872 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2247 | 2247 | | |
2248 | 2248 | | |
2249 | 2249 | | |
2250 | | - | |
| 2250 | + | |
2251 | 2251 | | |
| 2252 | + | |
2252 | 2253 | | |
2253 | 2254 | | |
2254 | 2255 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
270 | 271 | | |
271 | 272 | | |
272 | 273 | | |
| 274 | + | |
| 275 | + | |
273 | 276 | | |
274 | 277 | | |
| 278 | + | |
| 279 | + | |
275 | 280 | | |
276 | | - | |
| 281 | + | |
| 282 | + | |
277 | 283 | | |
278 | | - | |
279 | | - | |
280 | | - | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
281 | 289 | | |
282 | 290 | | |
283 | 291 | | |
284 | 292 | | |
| 293 | + | |
285 | 294 | | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
290 | 300 | | |
291 | 301 | | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | 302 | | |
298 | 303 | | |
| 304 | + | |
299 | 305 | | |
300 | 306 | | |
301 | 307 | | |
302 | | - | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
303 | 311 | | |
304 | 312 | | |
305 | 313 | | |
| |||
312 | 320 | | |
313 | 321 | | |
314 | 322 | | |
315 | | - | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
316 | 330 | | |
317 | 331 | | |
318 | 332 | | |
| |||
570 | 584 | | |
571 | 585 | | |
572 | 586 | | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
573 | 593 | | |
574 | 594 | | |
575 | 595 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
0 commit comments