diff --git a/grammar/src/attributes.grm b/grammar/src/attributes.grm index 1bc4324748c..1a0d6a9e89c 100644 --- a/grammar/src/attributes.grm +++ b/grammar/src/attributes.grm @@ -7,5 +7,5 @@ attributeAnnotation ; attribute - : SimpleName{"."} valueArguments? + : SimpleName{"."} (valueArguments | "=" expression)? ; \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java index 21094f1ef4b..c8c9ab095dd 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java @@ -373,14 +373,19 @@ public class JetParsing extends AbstractJetParsing { /* * attribute - * // : SimpleName{"."} valueArguments? + * // : SimpleName{"."} (valueArguments | "=" expression)? * [for recovery: userType valueArguments?] * ; */ private void parseAttribute() { PsiBuilder.Marker attribute = mark(); parseUserType(); - if (at(LPAR)) myExpressionParsing.parseValueArgumentList(); + if (at(LPAR)) { + myExpressionParsing.parseValueArgumentList(); + } else if (at(EQ)) { + advance(); // EQ + myExpressionParsing.parseExpression(); + } attribute.done(ATTRIBUTE); } diff --git a/idea/testData/psi/Attributes.jet b/idea/testData/psi/Attributes.jet index c23b914b932..d2d8bb0ec49 100644 --- a/idea/testData/psi/Attributes.jet +++ b/idea/testData/psi/Attributes.jet @@ -20,6 +20,9 @@ out ref class Bar