Fix parser performance: don't do the additional lookahead when looking for the comma in parameters

This commit is contained in:
Nikolay Krasko
2014-12-15 14:58:43 +03:00
parent ba849b5940
commit 421bb57f50
3 changed files with 40 additions and 24 deletions
@@ -18,5 +18,6 @@ fun foo() {
{(a, b) }
{T.(a, b) }
{(a: Int, )}
{a, }
}
@@ -370,6 +370,30 @@ JetFile: FunctionLiterals_ERR.kt
<empty list>
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
FUNCTION_LITERAL_EXPRESSION
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('a')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiElement(COMMA)(',')
PsiErrorElement:Expecting a parameter declaration
<empty list>
PsiWhiteSpace(' ')
PsiElement(RPAR)(')')
PsiErrorElement:An -> is expected
<empty list>
BLOCK
<empty list>
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
FUNCTION_LITERAL_EXPRESSION
FUNCTION_LITERAL
PsiElement(LBRACE)('{')