diff options
author | paltherr <paltherr@epfl.ch> | 2004-01-23 20:19:22 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2004-01-23 20:19:22 +0000 |
commit | 3cb16fdb4084aeed8af7b64f282bde5c2a42e096 (patch) | |
tree | 92f02738c97f1b8104a3cc1ef0d4f668f37c16b3 | |
parent | 17ea384cb388e778fd78698b854c76bea30abfb6 (diff) | |
download | scala-3cb16fdb4084aeed8af7b64f282bde5c2a42e096.tar.gz scala-3cb16fdb4084aeed8af7b64f282bde5c2a42e096.tar.bz2 scala-3cb16fdb4084aeed8af7b64f282bde5c2a42e096.zip |
- Added test to avoid StackOverflow
-rw-r--r-- | sources/scalac/transformer/ExpandMixinsPhase.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sources/scalac/transformer/ExpandMixinsPhase.java b/sources/scalac/transformer/ExpandMixinsPhase.java index e4c08ae58b..261c52354b 100644 --- a/sources/scalac/transformer/ExpandMixinsPhase.java +++ b/sources/scalac/transformer/ExpandMixinsPhase.java @@ -418,8 +418,10 @@ public class ExpandMixinsPhase extends Phase { case TypeRef(Type prefix, Symbol symbol, Type[] args): Type inline = (Type)inlines.get(symbol); if (inline != null) return inline; - prefix = apply(prefix); - symbol = prefix.rebind(symbol); + if (!symbol.isClassType()) { // !!! why do we need that ? + prefix = apply(prefix); + symbol = prefix.rebind(symbol); + } args = map(args); return Type.TypeRef(prefix, symbol, args).unalias(); case SingleType(Type prefix, Symbol symbol): |