summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-04-13 13:06:53 +0000
committerpaltherr <paltherr@epfl.ch>2004-04-13 13:06:53 +0000
commitacbb83de851c09cf26ef3af69d67a5b371a82181 (patch)
tree4224bde6eaaa14559380b429cbcfd33200fb3d28
parent118ba73f3a8cc2209c690b0012750261a9ecced2 (diff)
downloadscala-acbb83de851c09cf26ef3af69d67a5b371a82181.tar.gz
scala-acbb83de851c09cf26ef3af69d67a5b371a82181.tar.bz2
scala-acbb83de851c09cf26ef3af69d67a5b371a82181.zip
- Added links for all outer modules (solves bug...
- Added links for all outer modules (solves bug 318)
-rw-r--r--sources/scalac/transformer/ExplicitOuterClassesPhase.java14
1 files changed, 7 insertions, 7 deletions
diff --git a/sources/scalac/transformer/ExplicitOuterClassesPhase.java b/sources/scalac/transformer/ExplicitOuterClassesPhase.java
index 94ce24ae6e..a63d2c2456 100644
--- a/sources/scalac/transformer/ExplicitOuterClassesPhase.java
+++ b/sources/scalac/transformer/ExplicitOuterClassesPhase.java
@@ -246,7 +246,7 @@ public class ExplicitOuterClassesPhase extends Phase {
/** !!! */
public TypeContext(Symbol clasz, TypeContext[] outers, Symbol[] tlinks, Symbol vlink, Symbol[] oldtparams, Map tparams) {
this.clasz = clasz;
- this.isStable = clasz.isPackageClass() || (clasz.isModuleClass() && vlink == null);
+ this.isStable = clasz.isPackageClass();
this.outers = outers;
this.tlinks = tlinks;
this.vlink = vlink;
@@ -256,12 +256,9 @@ public class ExplicitOuterClassesPhase extends Phase {
/** !!! */
public Type getTypeLink(int level) {
- if (level == outers.length - 1) {
- assert outers[level].clasz.isRoot(): level + " - " + this; // !!! remove
- return Type.NoPrefix;
- }
- if (tlinks[level] != null) return tlinks[level].type();
- return Type.singleType(getTypeLink(level + 1), outers[level].clasz.module());
+ if (outers[level].clasz.isPackageClass()) return Type.NoPrefix;
+ assert tlinks[level] != null: level + " - " + Debug.show(clasz);
+ return tlinks[level].type();
}
public String toString() {
@@ -549,6 +546,8 @@ public class ExplicitOuterClassesPhase extends Phase {
tcontext = context.context.outers[i];
assert tcontext != null: Debug.show(clasz, " -- ", context.clasz);
if (tcontext.isStable) {
+ throw Debug.abort(Debug.show(clasz, " - ", context.clasz));
+ /*
if (!clasz.owner().isPackageClass()) {
Tree qualifier = genOuterRef(pos,tcontext.outers[0].clasz);
return gen.Select(pos, qualifier, clasz.module());
@@ -556,6 +555,7 @@ public class ExplicitOuterClassesPhase extends Phase {
assert clasz.owner().isPackageClass(): Debug.show(clasz);
return gen.Ident(pos, clasz.module());
}
+ */
} else {
assert context.context.vlink != null:
Debug.show(clasz, " -- ", context.clasz);