From c5142c94b0430308d2565053f7e80e0665f25c63 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 26 Aug 2011 16:27:47 +0200 Subject: [PATCH] tweak lambda parsing: don't put colon inside parameter list (for consistency with regular functions) --- .../src/com/jetbrains/python/parsing/FunctionParsing.java | 6 +++++- python/testData/psi/ConditionalParenLambda.txt | 2 +- python/testData/psi/LambdaComprehension.txt | 6 ++++-- python/testData/psi/LambdaConditional.txt | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/python/src/com/jetbrains/python/parsing/FunctionParsing.java b/python/src/com/jetbrains/python/parsing/FunctionParsing.java index 62f4d9508937..05a6ebc3e7ec 100644 --- a/python/src/com/jetbrains/python/parsing/FunctionParsing.java +++ b/python/src/com/jetbrains/python/parsing/FunctionParsing.java @@ -173,11 +173,15 @@ public class FunctionParsing extends Parsing { } } - if (myBuilder.getTokenType() == endToken) { + if (myBuilder.getTokenType() == endToken && endToken == PyTokenTypes.RPAR) { myBuilder.advanceLexer(); } parameterList.done(PyElementTypes.PARAMETER_LIST); + + if (myBuilder.getTokenType() == endToken && endToken == PyTokenTypes.COLON) { + myBuilder.advanceLexer(); + } } private void parseParameterSubList() { diff --git a/python/testData/psi/ConditionalParenLambda.txt b/python/testData/psi/ConditionalParenLambda.txt index 0b46ac94c48c..b520d5732a99 100644 --- a/python/testData/psi/ConditionalParenLambda.txt +++ b/python/testData/psi/ConditionalParenLambda.txt @@ -25,7 +25,7 @@ PyFile:ConditionalParenLambda.py PyParameterList PyNamedParameter('x') PsiElement(Py:IDENTIFIER)('x') - PsiElement(Py:COLON)(':') + PsiElement(Py:COLON)(':') PsiWhiteSpace(' ') PyConditionalExpression PyReferenceExpression: x diff --git a/python/testData/psi/LambdaComprehension.txt b/python/testData/psi/LambdaComprehension.txt index 6131eb274b0c..ebd6e914655e 100644 --- a/python/testData/psi/LambdaComprehension.txt +++ b/python/testData/psi/LambdaComprehension.txt @@ -16,7 +16,8 @@ PyFile:LambdaComprehension.py PyLambdaExpression PsiElement(Py:LAMBDA_KEYWORD)('lambda') PyParameterList - PsiElement(Py:COLON)(':') + + PsiElement(Py:COLON)(':') PsiWhiteSpace(' ') PyReferenceExpression: True PsiElement(Py:IDENTIFIER)('True') @@ -25,7 +26,8 @@ PyFile:LambdaComprehension.py PyLambdaExpression PsiElement(Py:LAMBDA_KEYWORD)('lambda') PyParameterList - PsiElement(Py:COLON)(':') + + PsiElement(Py:COLON)(':') PsiWhiteSpace(' ') PyReferenceExpression: False PsiElement(Py:IDENTIFIER)('False') diff --git a/python/testData/psi/LambdaConditional.txt b/python/testData/psi/LambdaConditional.txt index 472135ee99e1..e5c424b8287c 100644 --- a/python/testData/psi/LambdaConditional.txt +++ b/python/testData/psi/LambdaConditional.txt @@ -6,7 +6,7 @@ PyFile:LambdaConditional.py PyParameterList PyNamedParameter('x') PsiElement(Py:IDENTIFIER)('x') - PsiElement(Py:COLON)(':') + PsiElement(Py:COLON)(':') PsiWhiteSpace(' ') PyConditionalExpression PyNumericLiteralExpression