Parse modifier list of multi-declaration and for parameters

This commit is contained in:
Denis Zharkov
2015-05-04 18:22:58 +03:00
parent e236d04957
commit 3d810ffe61
10 changed files with 761 additions and 94 deletions
@@ -242,42 +242,33 @@ JetFile: declarationsJustAtTyped.kt
PsiElement(RBRACE)('}')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ')
BINARY_EXPRESSION
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiErrorElement:Expecting a variable name
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
VALUE_PARAMETER
MODIFIER_LIST
PsiErrorElement:Expected modifier or annotation after '@'
PsiElement(AT)('@')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting 'in'
PsiElement(IDENTIFIER)('x')
PsiErrorElement:Expecting ')'
<empty list>
PsiWhiteSpace(' ')
BODY
PsiErrorElement:Expecting an expression
<empty list>
OPERATION_REFERENCE
PsiElement(in)('in')
PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
OPERATION_REFERENCE
PsiElement(RANGE)('..')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('100')
PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
PsiElement(in)('in')
PsiWhiteSpace(' ')
LOOP_RANGE
BINARY_EXPRESSION
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
OPERATION_REFERENCE
PsiElement(RANGE)('..')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('100')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
FUNCTION_LITERAL_EXPRESSION
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace(' ')
BODY
BLOCK
<empty list>
PsiElement(RBRACE)('}')
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
@@ -1,3 +0,0 @@
fun foo() {
for (@volatile x in 1..100) {}
}
@@ -1,52 +0,0 @@
JetFile: invalidExpressions.kt
PACKAGE_DIRECTIVE
<empty list>
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiErrorElement:Expecting a variable name
PsiElement(AT)('@')
PsiErrorElement:Expecting 'in'
PsiElement(IDENTIFIER)('volatile')
PsiErrorElement:Expecting ')'
<empty list>
PsiWhiteSpace(' ')
BODY
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(in)('in')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
OPERATION_REFERENCE
PsiElement(RANGE)('..')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('100')
PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
FUNCTION_LITERAL_EXPRESSION
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
BLOCK
<empty list>
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')