summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-16 12:57:14 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-16 12:57:14 +0000
commit9928e41df8d6c38f9354c0f9caad31cc3f493e3c (patch)
tree94f837d0fb5b7592a3cee05bc9953d7aaf3dc3cb
parent8a2115f3605408237e757f64e1ca5d547e536c04 (diff)
downloadscala-9928e41df8d6c38f9354c0f9caad31cc3f493e3c.tar.gz
scala-9928e41df8d6c38f9354c0f9caad31cc3f493e3c.tar.bz2
scala-9928e41df8d6c38f9354c0f9caad31cc3f493e3c.zip
- Fixed id of terminal phase
-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;
}