Revert "Temporary parse label definitions with both syntax versions"

This reverts commit 3e3535f8cf.
This commit is contained in:
Denis Zharkov
2015-04-29 15:15:40 +03:00
parent 02659ca22d
commit bcee052302
4 changed files with 109 additions and 128 deletions
@@ -555,15 +555,10 @@ public class JetExpressionParsing extends AbstractJetParsing {
return lookahead(2) == LBRACE; return lookahead(2) == LBRACE;
} }
if (at(AT) && myBuilder.rawLookup(1) == IDENTIFIER) {
return lookahead(2) == LBRACE;
}
return at(AT) && lookahead(1) == LBRACE; return at(AT) && lookahead(1) == LBRACE;
} }
private boolean isAtLabelDefinitionOrMissingIdentifier() { private boolean isAtLabelDefinitionOrMissingIdentifier() {
if (at(AT) && myBuilder.rawLookup(1) == IDENTIFIER) return true;
return (at(IDENTIFIER) && myBuilder.rawLookup(1) == AT) || at(AT); return (at(IDENTIFIER) && myBuilder.rawLookup(1) == AT) || at(AT);
} }
@@ -1665,22 +1660,8 @@ public class JetExpressionParsing extends AbstractJetParsing {
*/ */
private void parseLabelDefinition() { private void parseLabelDefinition() {
if (at(AT)) { if (at(AT)) {
// recovery for old label syntax or empty label identifier // recovery for empty label identifier
if (myBuilder.rawLookup(1) == IDENTIFIER) { errorAndAdvance("Label must be named"); // AT
PsiBuilder.Marker labelWrap = mark();
PsiBuilder.Marker mark = mark();
advance(); // AT
advance(); // IDENTIFIER
mark.done(LABEL);
labelWrap.done(LABEL_QUALIFIER);
return;
}
else {
errorAndAdvance("Label must be named"); // AT
}
return; return;
} }
@@ -13,63 +13,61 @@ JetFile: oldSyntaxExpressions.kt
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
LABELED_EXPRESSION LABELED_EXPRESSION
LABEL_QUALIFIER PsiErrorElement:Label must be named
LABEL PsiElement(AT)('@')
PsiElement(AT)('@') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('loop1') PsiElement(IDENTIFIER)('loop1')
PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
<empty list>
PsiWhiteSpace(' ')
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
FOR PsiElement(LPAR)('(')
PsiElement(for)('for') VALUE_PARAMETER
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('i')
PsiElement(LPAR)('(') PsiWhiteSpace(' ')
VALUE_PARAMETER PsiElement(in)('in')
PsiElement(IDENTIFIER)('i') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') LOOP_RANGE
PsiElement(in)('in') BINARY_EXPRESSION
PsiWhiteSpace(' ') INTEGER_CONSTANT
LOOP_RANGE PsiElement(INTEGER_LITERAL)('1')
BINARY_EXPRESSION OPERATION_REFERENCE
INTEGER_CONSTANT PsiElement(RANGE)('..')
PsiElement(INTEGER_LITERAL)('1') INTEGER_CONSTANT
OPERATION_REFERENCE PsiElement(INTEGER_LITERAL)('100')
PsiElement(RANGE)('..') PsiElement(RPAR)(')')
INTEGER_CONSTANT PsiWhiteSpace(' ')
PsiElement(INTEGER_LITERAL)('100') BODY
PsiElement(RPAR)(')') BLOCK
PsiWhiteSpace(' ') PsiElement(LBRACE)('{')
BODY PsiWhiteSpace(' ')
BLOCK PsiElement(RBRACE)('}')
PsiElement(LBRACE)('{')
PsiWhiteSpace(' ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('x2') PsiElement(IDENTIFIER)('x2')
PsiElement(DOT)('.') PsiElement(DOT)('.')
CALL_EXPRESSION REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('filter')
PsiElement(IDENTIFIER)('filter') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
FUNCTION_LITERAL_ARGUMENT PsiElement(AT)('@')
LABELED_EXPRESSION PsiElement(IDENTIFIER)('f')
LABEL_QUALIFIER PsiWhiteSpace(' ')
LABEL FUNCTION_LITERAL_EXPRESSION
PsiElement(AT)('@') FUNCTION_LITERAL
PsiElement(IDENTIFIER)('f') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BLOCK
RETURN
PsiElement(return)('return')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
FUNCTION_LITERAL_EXPRESSION INTEGER_CONSTANT
FUNCTION_LITERAL PsiElement(INTEGER_LITERAL)('2')
PsiElement(LBRACE)('{') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n ') PsiElement(RBRACE)('}')
BLOCK
RETURN
PsiElement(return)('return')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
RETURN RETURN
PsiElement(return)('return') PsiElement(return)('return')
@@ -77,14 +75,16 @@ JetFile: oldSyntaxExpressions.kt
PARENTHESIZED PARENTHESIZED
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
LABELED_EXPRESSION LABELED_EXPRESSION
LABEL_QUALIFIER PsiErrorElement:Label must be named
LABEL PsiElement(AT)('@')
PsiElement(AT)('@') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('f') PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ') PsiErrorElement:Expecting ')'
INTEGER_CONSTANT <empty list>
PsiElement(INTEGER_LITERAL)('3') PsiWhiteSpace(' ')
PsiElement(RPAR)(')') PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
PsiElement(INTEGER_LITERAL)('3')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
+7 -7
View File
@@ -123,13 +123,13 @@ JetFile: recovery.kt
PsiElement(return)('return') PsiElement(return)('return')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
LABELED_EXPRESSION LABELED_EXPRESSION
LABEL_QUALIFIER PsiErrorElement:Label must be named
LABEL PsiElement(AT)('@')
PsiElement(AT)('@') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('loop2') PsiElement(IDENTIFIER)('loop2')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
INTEGER_CONSTANT PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
PsiElement(INTEGER_LITERAL)('4') PsiElement(INTEGER_LITERAL)('4')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
@@ -33,13 +33,13 @@ JetFile: spaceBeforeLabelReference.kt
PsiElement(return)('return') PsiElement(return)('return')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
LABELED_EXPRESSION LABELED_EXPRESSION
LABEL_QUALIFIER PsiErrorElement:Label must be named
LABEL PsiElement(AT)('@')
PsiElement(AT)('@') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('l2') PsiElement(IDENTIFIER)('l2')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
INTEGER_CONSTANT PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
PsiElement(INTEGER_LITERAL)('1') PsiElement(INTEGER_LITERAL)('1')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
@@ -55,20 +55,20 @@ JetFile: spaceBeforeLabelReference.kt
PsiElement(return)('return') PsiElement(return)('return')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
LABELED_EXPRESSION LABELED_EXPRESSION
LABEL_QUALIFIER PsiErrorElement:Label must be named
LABEL PsiElement(AT)('@')
PsiElement(AT)('@') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('l3') PsiElement(IDENTIFIER)('l3')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x') PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
INTEGER_CONSTANT INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('3') PsiElement(INTEGER_LITERAL)('3')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
CONTINUE CONTINUE
PsiElement(continue)('continue') PsiElement(continue)('continue')
@@ -111,33 +111,33 @@ JetFile: spaceBeforeLabelReference.kt
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiComment(BLOCK_COMMENT)('/**/') PsiComment(BLOCK_COMMENT)('/**/')
LABELED_EXPRESSION LABELED_EXPRESSION
LABEL_QUALIFIER PsiErrorElement:Label must be named
LABEL PsiElement(AT)('@')
PsiElement(AT)('@') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('l6') PsiElement(IDENTIFIER)('l6')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x') PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
INTEGER_CONSTANT INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('8') PsiElement(INTEGER_LITERAL)('8')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
RETURN RETURN
PsiElement(return)('return') PsiElement(return)('return')
PsiComment(EOL_COMMENT)('//') PsiComment(EOL_COMMENT)('//')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
LABELED_EXPRESSION LABELED_EXPRESSION
LABEL_QUALIFIER PsiErrorElement:Label must be named
LABEL PsiElement(AT)('@')
PsiElement(AT)('@') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('l7') PsiElement(IDENTIFIER)('l7')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
INTEGER_CONSTANT PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line)
PsiElement(INTEGER_LITERAL)('4') PsiElement(INTEGER_LITERAL)('4')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')