summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sources/scalac/PhaseDescriptor.java6
-rw-r--r--sources/scalac/symtab/Symbol.java4
2 files changed, 5 insertions, 5 deletions
diff --git a/sources/scalac/PhaseDescriptor.java b/sources/scalac/PhaseDescriptor.java
index 21f2e6a72e..c93fd327ba 100644
--- a/sources/scalac/PhaseDescriptor.java
+++ b/sources/scalac/PhaseDescriptor.java
@@ -54,12 +54,14 @@ public final class PhaseDescriptor {
// propagate other flags and freeze remaining phases
PhaseDescriptor last = null;
for (int i = 0; i < phases.length; i++) {
- phases[i].id = i;
+ phases[i].id = 2 * i;
if (phases[i].hasSkipFlag()) continue;
if (last != null) last.flags |= phases[i].flags >>> 16;
phases[i].flags &= 0x0000FFFF;
- last = phases[i];
+ if (i != phases.length - 1) last = phases[i];
}
+ // place TERMINAL phase just after last active phase
+ phases[phases.length - 1].id = last.id + 1;
}
//########################################################################
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index ac96e871ce..9f44c821c6 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -1796,9 +1796,7 @@ public final class ClassSymbol extends TypeSymbol {
public Type thisType() {
Global global = Global.instance;
- if (global.currentPhase.id > global.PHASE.ERASURE.id())
- if (!global.PHASE.ERASURE.hasSkipFlag())
- return type();
+ if (global.currentPhase.id > global.PHASE.ERASURE.id()) return type();
return thistp;
}