Commit c17b9b4
committed
SI-6692 pickle one more flag bit: EXISTENTIAL
before, PickledFlags & EXISTENTIAL == 0, so that an existential symbol would
lose the EXISTENTIAL bit when pickled, causing spurious incremental recompiles,
as pickled information and type-checking-from-source-based information differed
pickling this additional bit should be a compatible change, as older versions (pre-2.9.3)
will simply mask out the extra flag bits pickled as of now (2.9.3) so that their behavior
is not affected -- newer versions will see more flags, which might cause regressions,
but it's also the only way to fix SI-6692
this obviates the need to set the existential flag when unpickling an existential type's params
this is the smallest backport of a9b85db and 3e2c31f that I could think of
as 2.9 is in maintenance mode, I don't want to invest in testing infrastructure to test the pickler,
however, the fix is tested by the incremental compiler test 'inc-pickled-existential' in sbt1 parent 3d2bcf2 commit c17b9b4
File tree
2 files changed
+3
-5
lines changed- src/library/scala/reflect/generic
2 files changed
+3
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
103 | | - | |
| 103 | + | |
| 104 | + | |
104 | 105 | | |
105 | 106 | | |
106 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
396 | 396 | | |
397 | 397 | | |
398 | 398 | | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
| 399 | + | |
403 | 400 | | |
404 | 401 | | |
405 | 402 | | |
| |||
0 commit comments