diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-11-19 23:05:27 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-11-19 23:05:27 +0100 |
commit | 1050745dca08e1d98506b99ea03d47a602d11bc8 (patch) | |
tree | 50b60017fc8de93f353e3b6a29409d5d0a00c711 /src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | |
parent | b1d305388d21e3fd86660579f507889fd7b73e6f (diff) | |
download | scala-1050745dca08e1d98506b99ea03d47a602d11bc8.tar.gz scala-1050745dca08e1d98506b99ea03d47a602d11bc8.tar.bz2 scala-1050745dca08e1d98506b99ea03d47a602d11bc8.zip |
SI-7985 Refactor parsing of pattern type args
Just parse as though it is a type, and post process to
add the Bind if it turns out to be a type variable.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/Parsers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/ast/parser/Parsers.scala | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala index 7fb21c86d9..0429e295b4 100644 --- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala +++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala @@ -1774,10 +1774,12 @@ 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) && lookingAhead(in.token != DOT && in.token != HASH) => - atPos(start) { Bind(identForType(), EmptyTree) } case _ => - typ() + typ() match { + case Ident(name: TypeName) if nme.isVariableName(name) => + atPos(start) { Bind(name, EmptyTree) } + case t => t + } } } |