diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-11-19 21:37:27 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-11-19 21:54:12 +0100 |
commit | 77ecff775efd6ec21730ebd478722260b0f6c6b3 (patch) | |
tree | fcf61047276a42ec68e5021864fac15dfad3b407 | |
parent | c243435f113615b2f7407fbd683c93ec16c73749 (diff) | |
download | scala-77ecff775efd6ec21730ebd478722260b0f6c6b3.tar.gz scala-77ecff775efd6ec21730ebd478722260b0f6c6b3.tar.bz2 scala-77ecff775efd6ec21730ebd478722260b0f6c6b3.zip |
SI-7985 Allow qualified type argument in patterns
We were considering the lower case `s` in `case _: Array[scala.Int]`
as a sign that we were dealing with a type variable pattern.
Now, we only do this if a lookahead confirms the absence of a the `.`
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 2 | ||||
-rw-r--r-- | test/files/run/t7985.scala | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index ef4052d5f3..4e4a7738cb 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -1774,7 +1774,7 @@ self => in.nextToken() if (in.token == SUBTYPE || in.token == SUPERTYPE) wildcardType(start) else atPos(start) { Bind(tpnme.WILDCARD, EmptyTree) } - case IDENTIFIER if nme.isVariableName(in.name) => + case IDENTIFIER if nme.isVariableName(in.name) && lookingAhead(in.token != DOT) => atPos(start) { Bind(identForType(), EmptyTree) } case _ => typ() diff --git a/test/files/run/t7985.scala b/test/files/run/t7985.scala new file mode 100644 index 0000000000..5fe270f9c0 --- /dev/null +++ b/test/files/run/t7985.scala @@ -0,0 +1,3 @@ +object Test extends App { + Array(1) match { case _: Array[scala.Int] => } +} |