diff options
author | Som Snytt <som.snytt@gmail.com> | 2016-02-20 22:51:12 -0800 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2016-03-15 12:41:49 -0700 |
commit | cb5daf3a5d9ab8195746e21801c3300d78efb52c (patch) | |
tree | 200c20b0c71a1e4aa1e3893e82b76dfd8ae95c76 | |
parent | 8f36cf3545de3943e5d371286ac76556a5f0e80a (diff) | |
download | scala-cb5daf3a5d9ab8195746e21801c3300d78efb52c.tar.gz scala-cb5daf3a5d9ab8195746e21801c3300d78efb52c.tar.bz2 scala-cb5daf3a5d9ab8195746e21801c3300d78efb52c.zip |
SI-9665 Backquoted vbar in extractor pattern
Allow an infix extractor named `|`, when backquoted.
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 4 | ||||
-rw-r--r-- | test/files/pos/t9665.scala | 7 |
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 831a0412cd..53cd2f6d59 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -1966,8 +1966,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 => } +} |