diff options
author | paltherr <paltherr@epfl.ch> | 2004-01-26 16:46:30 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-01-26 16:46:30 +0000 |
commit | 94c44549ef1e3a945be17ee4f6e3ba767cbd405c (patch) | |
tree | 646aa6cb35dd7101dfeb9b17b980a627e98d637e | |
parent | 67b86b9e8db4f56df856ba539e8caa002a3e983a (diff) | |
download | scala-94c44549ef1e3a945be17ee4f6e3ba767cbd405c.tar.gz scala-94c44549ef1e3a945be17ee4f6e3ba767cbd405c.tar.bz2 scala-94c44549ef1e3a945be17ee4f6e3ba767cbd405c.zip |
- Fixed handling of single types
-rw-r--r-- | sources/scalac/transformer/ExpandMixinsPhase.java | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/sources/scalac/transformer/ExpandMixinsPhase.java b/sources/scalac/transformer/ExpandMixinsPhase.java index 76fa37aea6..4635fc1b0f 100644 --- a/sources/scalac/transformer/ExpandMixinsPhase.java +++ b/sources/scalac/transformer/ExpandMixinsPhase.java @@ -421,16 +421,9 @@ public class ExpandMixinsPhase extends Phase { if (inline != null) return inline; return map(type); case SingleType(Type prefix, Symbol symbol): - // !!! prefix = apply(prefix); - // !!! symbol = prefix.rebind(symbol); - // !!! commented out because of following example: - // class Bar { - // val b: Bar = null; - // class Linker { def b: Bar.this.b.type = Bar.this.b; } - // } Symbol clone = (Symbol)cloner.clones.get(symbol); - if (clone != null) symbol = clone; - return Type.singleType(prefix, symbol); + prefix = apply(prefix); + return Type.singleType(prefix, clone != null ? clone : symbol); case ThisType(Symbol symbol): if (symbol.isNone()) return type; return clasz.thisType(); |