Commit cb37548
committed
Symbol substutition must consider ClassInfoType#parents
An upcoming change to uncurry, in which I plan to make substitution of
`lambda params -> apply method params` requires that I first to fix a
problem in symbol substition.
This situation can arise when the body of this definition:
def owner1(a: A) = {
class C extends M[a.B]
}
is transplanted into a new owner that has a different symbol for `a`.
I speculated that value classes might also be prone to the
fact that symbol substitution neglected `ClassInfoType#parents`.
We can test change with Value Classes: Partial Functions that are
dependent on value class param type used to fail with a spurious
overriding error, now they work correctly.1 parent d7d63e9 commit cb37548
File tree
2 files changed
+30
-0
lines changed- src/reflect/scala/reflect/internal/tpe
- test/files/run
2 files changed
+30
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
717 | 717 | | |
718 | 718 | | |
719 | 719 | | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
720 | 726 | | |
721 | 727 | | |
722 | 728 | | |
| |||
| 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 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
0 commit comments