diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala | 11 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala b/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala index eaad12c0ed..e5a49f8358 100644 --- a/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala +++ b/src/compiler/scala/tools/nsc/ast/TreeBrowsers.scala @@ -224,8 +224,12 @@ abstract class TreeBrowsers { t.symbol.owner.toString else "NoSymbol has no owner") - if ((t.symbol ne null) && t.symbol.isType) - str.append("\ntermSymbol: " + t.symbol.tpe.termSymbol + "\ntypeSymbol: " + t.symbol.tpe.typeSymbol) + if ((t.symbol ne null) && t.symbol.isType) { + str.append("\ntermSymbol: " + t.symbol.tpe.termSymbol + + "\ntypeSymbol: " + t.symbol.tpe.typeSymbol) + if (t.symbol.isTypeSkolem) + str.append("\nSkolem of: " + t.symbol.deSkolemize) + } str.append("\nSymbol tpe: ") if (t.symbol ne null) { str.append(t.symbol.tpe).append("\n") @@ -562,7 +566,8 @@ abstract class TreeBrowsers { if ((s ne null) && (s != NoSymbol)) { var str = flagsToString(s.flags) if (s.isStaticMember) str = str + " isStatic "; - str + " annotations: " + s.annotations.mkString("", " ", "") + (str + " annotations: " + s.annotations.mkString("", " ", "") + + (if (s.isTypeSkolem) "\ndeSkolemized annotations: " + s.deSkolemize.annotations.mkString("", " ", "") else "")) } else "" } diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index 2d7be0be53..f57a21e181 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -618,6 +618,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { * m$D[ U](x: Double, y: U) */ private def normalizeMember(owner: Symbol, sym: Symbol, outerEnv: TypeEnv): List[Symbol] = { + log("normalizeMember: " + sym.fullName) if (sym.isMethod && !sym.info.typeParams.isEmpty) { val (stps, tps) = splitParams(sym.info.typeParams) val res = sym :: (for (env <- specializations(stps) if needsSpecialization(env, sym)) yield { |