Commit 0bf43b2
committed
Term refs that reference term parameters can be substituted later
by more precise ones, which can lead to different instantiations
of type captures. They must therefore be considered as non concrete
when following `baseType`s to captures in variant positions, like
we do for type param refs and other substitutable references.
We actually rewrite `isConcrete` in the process to be more based
on an "allow list" of things we know to be concrete, rather than
an "exclusion list" of things we know to be non-concrete. That
should make it more straightforward to evaluate the validity of
the algorithm.
1 parent 7171211 commit 0bf43b2
File tree
5 files changed
+61
-30
lines changed- compiler/src/dotty/tools/dotc/core
- tests
- neg
- pos
5 files changed
+61
-30
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3360 | 3360 | | |
3361 | 3361 | | |
3362 | 3362 | | |
3363 | | - | |
3364 | | - | |
| 3363 | + | |
| 3364 | + | |
3365 | 3365 | | |
3366 | 3366 | | |
3367 | | - | |
3368 | | - | |
3369 | | - | |
3370 | | - | |
3371 | | - | |
3372 | | - | |
3373 | | - | |
3374 | | - | |
| 3367 | + | |
| 3368 | + | |
3375 | 3369 | | |
3376 | 3370 | | |
3377 | 3371 | | |
3378 | | - | |
3379 | | - | |
3380 | | - | |
3381 | | - | |
3382 | | - | |
3383 | | - | |
3384 | | - | |
3385 | | - | |
| 3372 | + | |
| 3373 | + | |
| 3374 | + | |
| 3375 | + | |
| 3376 | + | |
| 3377 | + | |
| 3378 | + | |
| 3379 | + | |
| 3380 | + | |
| 3381 | + | |
| 3382 | + | |
| 3383 | + | |
| 3384 | + | |
| 3385 | + | |
| 3386 | + | |
| 3387 | + | |
| 3388 | + | |
| 3389 | + | |
| 3390 | + | |
| 3391 | + | |
| 3392 | + | |
| 3393 | + | |
| 3394 | + | |
| 3395 | + | |
| 3396 | + | |
3386 | 3397 | | |
3387 | | - | |
3388 | | - | |
3389 | | - | |
3390 | | - | |
3391 | | - | |
3392 | | - | |
3393 | | - | |
| 3398 | + | |
| 3399 | + | |
| 3400 | + | |
3394 | 3401 | | |
3395 | 3402 | | |
3396 | 3403 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
17 | | - | |
18 | | - | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
0 commit comments