aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/parsing/Parsers.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/parsing/Parsers.scala')
-rw-r--r--src/dotty/tools/dotc/parsing/Parsers.scala11
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)