summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-10-02 21:01:10 +0200
committerJason Zaugg <jzaugg@gmail.com>2012-10-02 21:18:01 +0200
commit0720157cd7d82db6c1efea615c2e78565b4ada0e (patch)
tree6bb7c0f165e3c1977b1c5537f9da22aa27de901d /src
parentbe49f36154efa78c3dcbeba394aa6ec2b5e764ec (diff)
downloadscala-0720157cd7d82db6c1efea615c2e78565b4ada0e.tar.gz
scala-0720157cd7d82db6c1efea615c2e78565b4ada0e.tar.bz2
scala-0720157cd7d82db6c1efea615c2e78565b4ada0e.zip
SI-6436 Handle ambiguous string processors
Before, we got in an inifinite loop by chasing the error typed result of adaptToMemberWithArgs. One point of befuddlement remains: why did t6436 and t6436b behave differently before this change?
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index c25b6c3726..335d93f387 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -4578,7 +4578,7 @@ trait Typers extends Modes with Adaptations with Tags {
// xml member to StringContext, which in turn has an unapply[Seq] method)
if (name != nme.CONSTRUCTOR && inExprModeOr(mode, PATTERNmode)) {
val qual1 = adaptToMemberWithArgs(tree, qual, name, mode, true, true)
- if (qual1 ne qual)
+ if ((qual1 ne qual) && !qual1.isErrorTyped)
return typed(treeCopy.Select(tree, qual1, name), mode, pt)
}
NoSymbol