diff options
author | Martin Odersky <odersky@gmail.com> | 2014-05-13 17:03:36 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-05-30 14:34:33 +0200 |
commit | ed1d5f310951715d95873c56f64195ac3ee45817 (patch) | |
tree | 755803d8e6badeac510de960b63ecec8fd2d6916 /src/dotty/tools/dotc | |
parent | 7bc5cd18ee4f881f223e9a317e6c6a329942d5af (diff) | |
download | dotty-ed1d5f310951715d95873c56f64195ac3ee45817.tar.gz dotty-ed1d5f310951715d95873c56f64195ac3ee45817.tar.bz2 dotty-ed1d5f310951715d95873c56f64195ac3ee45817.zip |
Fix of pos/t2454
"_" type paraeters need to be given fresh names.
Diffstat (limited to 'src/dotty/tools/dotc')
-rw-r--r-- | src/dotty/tools/dotc/parsing/Parsers.scala | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/dotty/tools/dotc/parsing/Parsers.scala b/src/dotty/tools/dotc/parsing/Parsers.scala index 7bc7d5516..0ad33a96c 100644 --- a/src/dotty/tools/dotc/parsing/Parsers.scala +++ b/src/dotty/tools/dotc/parsing/Parsers.scala @@ -447,10 +447,6 @@ object Parsers { if (tok == BACKQUOTED_IDENT) BackquotedIdent(name) else Ident(name) - /** IdentOrWildcard ::= id | `_' */ - def identOrWildcard(): Name = - if (in.token == USCORE) { in.nextToken(); nme.WILDCARD } else ident() - def wildcardIdent(): Ident = atPos(accept(USCORE)) { Ident(nme.WILDCARD) } @@ -1478,7 +1474,12 @@ object Parsers { if (mods is VarianceFlags) in.nextToken() } atPos(tokenRange) { - val name = (if (isConcreteOwner) ident() else identOrWildcard()).toTypeName + val name = + if (isConcreteOwner || in.token != USCORE) ident().toTypeName + else { + in.nextToken() + ctx.freshName(nme.USCORE_PARAM_PREFIX).toTypeName + } val hkparams = if (ownerKind == ParamOwner.TypeParam) Nil else typeParamClauseOpt(ParamOwner.TypeParam) |