diff options
author | paltherr <paltherr@epfl.ch> | 2004-04-13 13:06:53 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-04-13 13:06:53 +0000 |
commit | acbb83de851c09cf26ef3af69d67a5b371a82181 (patch) | |
tree | 4224bde6eaaa14559380b429cbcfd33200fb3d28 | |
parent | 118ba73f3a8cc2209c690b0012750261a9ecced2 (diff) | |
download | scala-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.java | 14 |
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); |