diff --git a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala index 166d44ecb4ff..ef68c570f3f0 100644 --- a/compiler/src/dotty/tools/dotc/parsing/Parsers.scala +++ b/compiler/src/dotty/tools/dotc/parsing/Parsers.scala @@ -213,7 +213,9 @@ object Parsers { } && !in.isSoftModifierInModifierPosition def isExprIntro: Boolean = - in.canStartExprTokens.contains(in.token) && !in.isSoftModifierInModifierPosition + in.canStartExprTokens.contains(in.token) + && !in.isSoftModifierInModifierPosition + && !(isIdent(nme.extension) && followingIsExtension()) def isDefIntro(allowedMods: BitSet, excludedSoftModifiers: Set[TermName] = Set.empty): Boolean = in.token == AT diff --git a/tests/pos/i8181.scala b/tests/pos/i8181.scala new file mode 100644 index 000000000000..6dbf2b74660f --- /dev/null +++ b/tests/pos/i8181.scala @@ -0,0 +1,6 @@ +object Main: + def main(args: Array[String]): Unit = + extension on (a: AnyRef): + def putout(): Unit = println(a) + + "blub".putout()