diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2010-08-23 08:52:12 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2010-08-23 08:52:12 +0000 |
commit | 6c2c125d1bf407b450c242f8dcf7d640367ef18f (patch) | |
tree | 1c55f1f7874f6564b5121a6d8f850caf09b1e6e3 | |
parent | f6843150fb52faca82761988be67ee07f412531f (diff) | |
download | scala-6c2c125d1bf407b450c242f8dcf7d640367ef18f.tar.gz scala-6c2c125d1bf407b450c242f8dcf7d640367ef18f.tar.bz2 scala-6c2c125d1bf407b450c242f8dcf7d640367ef18f.zip |
Fix for not looking into Java types when specia...
Fix for not looking into Java types when specializing.
-rw-r--r-- | 1 | 0 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala | 7 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index 98c513c30e..65c685b350 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -875,7 +875,10 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { */ override def transformInfo(sym: Symbol, tpe: Type): Type = { val res = tpe match { - case PolyType(targs, ClassInfoType(base, decls, clazz)) if clazz != definitions.RepeatedParamClass && clazz != definitions.JavaRepeatedParamClass => + case PolyType(targs, ClassInfoType(base, decls, clazz)) + if clazz != definitions.RepeatedParamClass + && clazz != definitions.JavaRepeatedParamClass + && !clazz.hasFlag(JAVA) => val parents = base map specializedType if (settings.debug.value) log("transformInfo (poly) " + clazz + " with parents1: " + parents + " ph: " + phase) // if (clazz.name.toString == "$colon$colon") @@ -884,7 +887,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { new Scope(specializeClass(clazz, typeEnv(clazz)) ::: specialOverrides(clazz)), clazz)) - case ClassInfoType(base, decls, clazz) if !clazz.isPackageClass => + case ClassInfoType(base, decls, clazz) if !clazz.isPackageClass && !clazz.hasFlag(JAVA) => atPhase(phase.next)(base.map(_.typeSymbol.info)) val parents = base map specializedType if (settings.debug.value) log("transformInfo " + clazz + " with parents1: " + parents + " ph: " + phase) |