From 8d83b866a4d58891bba3d881f0e471cb6908f5ad Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 14 Jan 2011 21:40:59 +0300 Subject: [PATCH] Attributes on patterns tested --- grammar/src/when.grm | 1 - .../lang/parsing/JetExpressionParsing.java | 1 - idea/testData/psi/AttributesOnPatterns.jet | 9 ++ idea/testData/psi/AttributesOnPatterns.txt | 116 ++++++++++++++++++ 4 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 idea/testData/psi/AttributesOnPatterns.jet create mode 100644 idea/testData/psi/AttributesOnPatterns.txt diff --git a/grammar/src/when.grm b/grammar/src/when.grm index 4bb312b8288..fb90a99d0a6 100644 --- a/grammar/src/when.grm +++ b/grammar/src/when.grm @@ -4,7 +4,6 @@ when "}" ; -// TODO: attributes for when entries? whenEntry : whenConditionIf{","} (when | "=>" expression SEMI) : "else" ("continue" | "=>" expression SEMI) diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index 0ee15f40ac4..cf895b63986 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -444,7 +444,6 @@ public class JetExpressionParsing extends AbstractJetParsing { } /* - * TODO: attributes for when entries? * whenEntry * : whenConditionIf{","} (when | "=>" expression SEMI) * : "else" ("continue" | "=>" expression SEMI) diff --git a/idea/testData/psi/AttributesOnPatterns.jet b/idea/testData/psi/AttributesOnPatterns.jet new file mode 100644 index 00000000000..2b5b9096471 --- /dev/null +++ b/idea/testData/psi/AttributesOnPatterns.jet @@ -0,0 +1,9 @@ +fun foo() { + + when (e) { + is [a] =2 => d + is [a] 2 => d + is [a] T => d + is [a] T() => d + } +} diff --git a/idea/testData/psi/AttributesOnPatterns.txt b/idea/testData/psi/AttributesOnPatterns.txt new file mode 100644 index 00000000000..2f25adbd7e9 --- /dev/null +++ b/idea/testData/psi/AttributesOnPatterns.txt @@ -0,0 +1,116 @@ +JetFile: AttributesOnPatterns.jet + NAMESPACE + FUN + PsiElement(fun)('fun') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('foo') + TYPE_PARAMETER_LIST + + VALUE_PARAMETER_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n\n ') + WHEN + PsiElement(when)('when') + PsiWhiteSpace(' ') + PsiElement(LPAR)('(') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('e') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + WHEN_ENTRY + WHEN_CONDITION + PsiElement(is)('is') + PsiWhiteSpace(' ') + EXPRESSION_PATTERN + ATTRIBUTE_ANNOTATION + PsiElement(LBRACKET)('[') + ATTRIBUTE + TYPE_REFERENCE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('a') + PsiElement(RBRACKET)(']') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace(' ') + PsiElement(DOUBLE_ARROW)('=>') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('d') + PsiWhiteSpace('\n ') + WHEN_ENTRY + WHEN_CONDITION + PsiElement(is)('is') + PsiWhiteSpace(' ') + EXPRESSION_PATTERN + ATTRIBUTE_ANNOTATION + PsiElement(LBRACKET)('[') + ATTRIBUTE + TYPE_REFERENCE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('a') + PsiElement(RBRACKET)(']') + PsiWhiteSpace(' ') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2') + PsiWhiteSpace(' ') + PsiElement(DOUBLE_ARROW)('=>') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('d') + PsiWhiteSpace('\n ') + WHEN_ENTRY + WHEN_CONDITION + PsiElement(is)('is') + PsiWhiteSpace(' ') + TYPE_PATTERN + ATTRIBUTE_ANNOTATION + PsiElement(LBRACKET)('[') + ATTRIBUTE + TYPE_REFERENCE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('a') + PsiElement(RBRACKET)(']') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('T') + PsiWhiteSpace(' ') + PsiElement(DOUBLE_ARROW)('=>') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('d') + PsiWhiteSpace('\n ') + WHEN_ENTRY + WHEN_CONDITION + PsiElement(is)('is') + PsiWhiteSpace(' ') + DECOMPOSER_PATTERN + ATTRIBUTE_ANNOTATION + PsiElement(LBRACKET)('[') + ATTRIBUTE + TYPE_REFERENCE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('a') + PsiElement(RBRACKET)(']') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('T') + DECOMPOSER_ARGUMENT_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + PsiElement(DOUBLE_ARROW)('=>') + PsiWhiteSpace(' ') + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('d') + PsiWhiteSpace('\n ') + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n') + PsiElement(RBRACE)('}') \ No newline at end of file