From 514fce427b0700da5de71b5dd7b5dc23514ee01e Mon Sep 17 00:00:00 2001 From: Iven Krall Date: Fri, 25 Mar 2022 16:45:40 +0100 Subject: [PATCH] KT-51714: Parsing fails for context receivers with incomplete label ^KT-51576 In Progress No test has been added since it would make indexing of Kotlin project failing Will add it once bootstrap is advanced --- .../kotlin/parsing/KotlinExpressionParsing.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java b/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java index 0206ffe9bb5..0cfc190e733 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java +++ b/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java @@ -1691,10 +1691,17 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing { * IDENTIFIER "@" */ void parseLabelDefinition() { + assert isAtLabelDefinitionOrMissingIdentifier() : "Callers must check that current token is IDENTIFIER followed with '@'"; + PsiBuilder.Marker labelWrap = mark(); PsiBuilder.Marker mark = mark(); - assert _at(IDENTIFIER) && myBuilder.rawLookup(1) == AT : "Callers must check that current token is IDENTIFIER followed with '@'"; + if (at(AT)) { + errorAndAdvance("Expecting identifier before '@' in label definition"); + labelWrap.drop(); + mark.drop(); + return; + } advance(); // IDENTIFIER advance(); // AT