summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index 09f1db7249..1ae9a9d8c0 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -1633,19 +1633,14 @@ self =>
}
case _ =>
}
- /* not yet
- if (in.token == LBRACKET)
- atPos(in.offset) {
- val ts = typeArgs(true, false)
- accept(LPAREN)
- val ps = if (in.token == RPAREN) List() else patterns(true, false)
- accept(RPAREN)
- Apply(TypeApply(convertToTypeId(t), ts), ps)
- }
- else */
- if (in.token == LPAREN)
- atPos(start, in.offset) { Apply(t, argumentPatterns()) }
- else t
+ val typeAppliedTree = in.token match {
+ case LBRACKET => atPos(start, in.offset)(TypeApply(convertToTypeId(t), typeArgs(true, false)))
+ case _ => t
+ }
+ in.token match {
+ case LPAREN => atPos(start, in.offset)(Apply(typeAppliedTree, argumentPatterns()))
+ case _ => typeAppliedTree
+ }
case USCORE =>
in.nextToken()
atPos(start, start) { Ident(nme.WILDCARD) }