diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parser/parsing/statements/expressions/ExpressionStatement.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parser/parsing/statements/expressions/ExpressionStatement.java index 25fee409a7bc..3a5192f94f24 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parser/parsing/statements/expressions/ExpressionStatement.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/parser/parsing/statements/expressions/ExpressionStatement.java @@ -142,6 +142,7 @@ public class ExpressionStatement implements GroovyElementTypes { private static GroovyElementType namePartParse(PsiBuilder builder, GroovyParser parser) { if (BINARY_OP_SET.contains(builder.getTokenType())) return WRONGWAY; + if (KEYWORDS.contains(builder.getTokenType())) return WRONGWAY; final GroovyElementType type = PathExpression.namePartParse(builder, parser); if (type == WRONGWAY && NUMBERS.contains(builder.getTokenType())) { builder.advanceLexer(); diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy index 8834c53caaad..ca41c84868ef 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy @@ -278,6 +278,7 @@ public class ExpressionsParsingTest extends GroovyParsingTestCase { public void testcommandExpr$in() {doTest()} public void testcommandExpr$as() {doTest()} public void testcommandExpr$arrayAccess() {doTest()} + public void testcommandExpr$keywords() {doTest()} public void testDiamond() {doTest()} } diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/commandExpr/keywords.test b/plugins/groovy/testdata/parsing/groovy/expressions/commandExpr/keywords.test new file mode 100644 index 000000000000..b760dfebdb16 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/commandExpr/keywords.test @@ -0,0 +1,28 @@ +if (true) print "foo" else print "bar" +----- +Groovy script + IF statement + PsiElement(if)('if') + PsiWhiteSpace(' ') + PsiElement(()('(') + Literal + PsiElement(true)('true') + PsiElement())(')') + PsiWhiteSpace(' ') + Call expression + Reference expression + PsiElement(identifier)('print') + PsiWhiteSpace(' ') + Command arguments + Literal + PsiElement(Gstring)('"foo"') + PsiWhiteSpace(' ') + PsiElement(else)('else') + PsiWhiteSpace(' ') + Call expression + Reference expression + PsiElement(identifier)('print') + PsiWhiteSpace(' ') + Command arguments + Literal + PsiElement(Gstring)('"bar"') \ No newline at end of file