From 6cb2747a76a673da12470fed520933257e9c7d6b Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 14 Jan 2011 21:14:10 +0300 Subject: [PATCH] Fix () to be a 0-ary tuple, not empty PARENTHESIZED --- .../jet/lang/parsing/JetExpressionParsing.java | 10 ++++++---- idea/testData/psi/NewlinesInParentheses.txt | 2 +- idea/testData/psi/Precedence.jet | 2 +- idea/testData/psi/SimpleExpressions.txt | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index 3d6e2338d21..18f40f21d77 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -1233,11 +1233,11 @@ public class JetExpressionParsing extends AbstractJetParsing { myBuilder.disableNewlines(); advance(); // LPAR - int commaPassed = 0; + boolean tuple = false; if (!at(RPAR)) { while (true) { while (at(COMMA)) { - commaPassed++; + tuple = true; errorAndAdvance("Expecting a tuple entry (expression)"); } @@ -1245,19 +1245,21 @@ public class JetExpressionParsing extends AbstractJetParsing { if (!at(COMMA)) break; advance(); // COMMA - commaPassed++; + tuple = true; if (at(RPAR)) { error("Expecting a tuple entry (expression)"); break; } } + } else { + tuple = true; } expect(RPAR, "Expecting ')'"); myBuilder.restoreNewlinesState(); - mark.done(commaPassed > 0 ? TUPLE : PARENTHESIZED); + mark.done(tuple ? TUPLE : PARENTHESIZED); } /* diff --git a/idea/testData/psi/NewlinesInParentheses.txt b/idea/testData/psi/NewlinesInParentheses.txt index 69b6b096fec..5bdc7543ea5 100644 --- a/idea/testData/psi/NewlinesInParentheses.txt +++ b/idea/testData/psi/NewlinesInParentheses.txt @@ -324,7 +324,7 @@ JetFile: NewlinesInParentheses.jet REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiWhiteSpace('\n ') - PARENTHESIZED + TUPLE PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace('\n') diff --git a/idea/testData/psi/Precedence.jet b/idea/testData/psi/Precedence.jet index 36c950dd633..aa24f83337c 100644 --- a/idea/testData/psi/Precedence.jet +++ b/idea/testData/psi/Precedence.jet @@ -32,4 +32,4 @@ fun foo() { a || b && c a = b -> c a = b || c -} \ No newline at end of file +} diff --git a/idea/testData/psi/SimpleExpressions.txt b/idea/testData/psi/SimpleExpressions.txt index bb0b5b1a596..75782d4b1cb 100644 --- a/idea/testData/psi/SimpleExpressions.txt +++ b/idea/testData/psi/SimpleExpressions.txt @@ -20,7 +20,7 @@ JetFile: SimpleExpressions.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - PARENTHESIZED + TUPLE PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiElement(COMMA)(',')