summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-01-26 16:46:30 +0000
committerpaltherr <paltherr@epfl.ch>2004-01-26 16:46:30 +0000
commit94c44549ef1e3a945be17ee4f6e3ba767cbd405c (patch)
tree646aa6cb35dd7101dfeb9b17b980a627e98d637e /sources
parent67b86b9e8db4f56df856ba539e8caa002a3e983a (diff)
downloadscala-94c44549ef1e3a945be17ee4f6e3ba767cbd405c.tar.gz
scala-94c44549ef1e3a945be17ee4f6e3ba767cbd405c.tar.bz2
scala-94c44549ef1e3a945be17ee4f6e3ba767cbd405c.zip
- Fixed handling of single types
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/transformer/ExpandMixinsPhase.java11
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();