summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2016-05-20 18:25:52 -0700
committerAdriaan Moors <adriaan@lightbend.com>2016-05-20 18:25:52 -0700
commita79b9b7220c87ba21b374eda25702c7bc446dc29 (patch)
treec6196537e18688efbf26a494fa08d2c728adf86c
parent1ea191659bcb929609f342fa4037fe4928363d03 (diff)
parentcb5daf3a5d9ab8195746e21801c3300d78efb52c (diff)
downloadscala-a79b9b7220c87ba21b374eda25702c7bc446dc29.tar.gz
scala-a79b9b7220c87ba21b374eda25702c7bc446dc29.tar.bz2
scala-a79b9b7220c87ba21b374eda25702c7bc446dc29.zip
Merge pull request #4988 from som-snytt/issue/backtick-bar
SI-9665 Backquoted vbar in extractor pattern
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala4
-rw-r--r--test/files/pos/t9665.scala7
2 files changed, 9 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index 9c0174d89b..0254141bfb 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -1964,8 +1964,8 @@ self =>
case _ => EmptyTree
}
def loop(top: Tree): Tree = reducePatternStack(base, top) match {
- case next if isIdentExcept(raw.BAR) => pushOpInfo(next) ; loop(simplePattern(badPattern3))
- case next => next
+ case next if isIdent && !isRawBar => pushOpInfo(next) ; loop(simplePattern(badPattern3))
+ case next => next
}
checkWildStar orElse stripParens(loop(top))
}
diff --git a/test/files/pos/t9665.scala b/test/files/pos/t9665.scala
new file mode 100644
index 0000000000..1aa7a5d459
--- /dev/null
+++ b/test/files/pos/t9665.scala
@@ -0,0 +1,7 @@
+
+object | { def unapply(x: (Any, Any)) = Some(x) }
+
+trait Test {
+ def f() = (1,2) match { case 1 `|` 2 => }
+ def g() = 2 match { case 1 | 2 => }
+}