diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-07-08 15:59:23 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-07-08 15:59:23 +0000 |
commit | b54e41621999d14ba52cbe40062a624e98e47066 (patch) | |
tree | 3461fe1c531b53fa480bea257115f640561f999e /src | |
parent | c9827c4a98a4d937c8e2c90efefe3059bf27366f (diff) | |
download | scala-b54e41621999d14ba52cbe40062a624e98e47066.tar.gz scala-b54e41621999d14ba52cbe40062a624e98e47066.tar.bz2 scala-b54e41621999d14ba52cbe40062a624e98e47066.zip |
closes #3507: don't generate manifests where we...
closes #3507: don't generate manifests where we can't refer to the
existentially bound value
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Implicits.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala index 3abaf4f337..4f1db5604a 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala @@ -810,7 +810,7 @@ self: Analyzer => def mot(tp0: Type): Tree = { val tp1 = tp0.normalize tp1 match { - case ThisType(_) | SingleType(_, _) => + case ThisType(_) | SingleType(_, _) if !(tp1 exists {tp => tp.typeSymbol.isExistentiallyBound}) => // can't generate a reference to a value that's abstracted over by an existential manifestFactoryCall("singleType", tp, gen.mkAttributedQualifier(tp1)) case ConstantType(value) => manifestOfType(tp1.deconst, full) |