summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2010-08-23 08:52:12 +0000
committerIulian Dragos <jaguarul@gmail.com>2010-08-23 08:52:12 +0000
commit6c2c125d1bf407b450c242f8dcf7d640367ef18f (patch)
tree1c55f1f7874f6564b5121a6d8f850caf09b1e6e3 /src
parentf6843150fb52faca82761988be67ee07f412531f (diff)
downloadscala-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.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala7
1 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)