JetFile: FunctionsWithFunctionReceiversRecovery.kt PACKAGE_DIRECTIVE IMPORT_LIST FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE PsiElement(LPAR)('(') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('G') PsiElement(RPAR)(')') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('P') PsiElement(GT)('>') PsiErrorElement:Expecting '(' PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace(' ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE PsiElement(LPAR)('(') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('G') PsiElement(RPAR)(')') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') PsiErrorElement:Expecting '(' PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace(' ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE PsiElement(LPAR)('(') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('G') PsiElement(RPAR)(')') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('P') PsiElement(GT)('>') PsiErrorElement:Expecting '(' PsiWhiteSpace('\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE PsiElement(LPAR)('(') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('G') PsiElement(RPAR)(')') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') PsiErrorElement:Expecting '(' PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('0') PsiWhiteSpace('\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE NULLABLE_TYPE PsiElement(LPAR)('(') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('G') PsiElement(RPAR)(')') PsiElement(QUEST)('?') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') PsiErrorElement:Expecting '(' PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace(' ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE NULLABLE_TYPE NULLABLE_TYPE PsiElement(LPAR)('(') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('G') PsiElement(RPAR)(')') PsiElement(QUEST)('?') PsiElement(QUEST)('?') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') PsiErrorElement:Expecting '(' PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace(' ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE PsiElement(LPAR)('(') FUNCTION_TYPE FUNCTION_TYPE_RECEIVER TYPE_REFERENCE ANNOTATION PsiElement(AT)('@') PsiElement(LBRACKET)('[') ANNOTATION_ENTRY CONSTRUCTOR_CALLEE TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiElement(DOT)('.') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('A') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('B') PsiElement(GT)('>') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('C') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('D') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('E') PsiElement(GT)('>') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') TYPE_REFERENCE PsiErrorElement:Type expected PsiElement(RPAR)(')') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') FUN PsiElement(fun)('fun') PsiErrorElement:Expecting function name or receiver type PsiWhiteSpace(' ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE ANNOTATION PsiElement(AT)('@') PsiElement(LBRACKET)('[') ANNOTATION_ENTRY CONSTRUCTOR_CALLEE TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiElement(DOT)('.') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiErrorElement:Parameter name expected TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('A') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('B') PsiElement(GT)('>') PsiElement(RPAR)(')') PsiErrorElement:Expecting a top level declaration PsiElement(DOT)('.') PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('foo') PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(') PsiErrorElement:Expecting a top level declaration PsiElement(RPAR)(')') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE ANNOTATION PsiElement(AT)('@') PsiElement(LBRACKET)('[') ANNOTATION_ENTRY CONSTRUCTOR_CALLEE TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE FUNCTION_TYPE FUNCTION_TYPE_RECEIVER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiElement(DOT)('.') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('A') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('B') PsiElement(GT)('>') PsiElement(RPAR)(')') PsiErrorElement:Expecting '->' to specify return type of a function type PsiElement(RPAR)(')') TYPE_REFERENCE PsiErrorElement:Type expected PsiElement(DOT)('.') PsiErrorElement:Expecting comma or ')' PsiErrorElement:Expecting ')' PsiElement(IDENTIFIER)('foo') PsiErrorElement:Expecting '->' to specify return type of a function type PsiElement(LPAR)('(') TYPE_REFERENCE PsiErrorElement:Type expected PsiElement(RPAR)(')') PsiWhiteSpace('\n') PsiErrorElement:Expecting '.' before a function name PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiErrorElement:Expecting function name PsiElement(AT)('@') PsiErrorElement:Expecting '(' PsiErrorElement:Expecting a top level declaration PsiElement(LBRACKET)('[') PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('a') PsiErrorElement:Expecting a top level declaration PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(') PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(') PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('A') PsiErrorElement:Expecting a top level declaration PsiElement(LT)('<') PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('B') PsiErrorElement:Expecting a top level declaration PsiElement(GT)('>') PsiErrorElement:Expecting a top level declaration PsiElement(RPAR)(')') PsiErrorElement:Expecting a top level declaration PsiElement(MINUS)('-') PsiErrorElement:Expecting a top level declaration PsiElement(RPAR)(')') PsiErrorElement:Expecting a top level declaration PsiElement(DOT)('.') PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('foo') PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(') PsiErrorElement:Expecting a top level declaration PsiElement(RPAR)(')') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE PsiElement(LPAR)('(') FUNCTION_TYPE VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiElement(ARROW)('->') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('G') PsiElement(RPAR)(')') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('foo') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiErrorElement:Expecting '(' PsiWhiteSpace('\n') CLASS PsiElement(class)('class') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('C') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiErrorElement:Expecting a top level declaration PsiElement(DOT)('.') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('c') PsiElement(GT)('>') PsiErrorElement:Expecting '(' PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('c') PsiErrorElement:Expecting a top level declaration PsiElement(LT)('<') PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('t') PsiErrorElement:Expecting a top level declaration PsiElement(GT)('>') PsiErrorElement:Expecting a top level declaration PsiElement(DOT)('.') PsiWhiteSpace('\n\n') CLASS PsiComment(EOL_COMMENT)('//-----------') PsiWhiteSpace('\n') PsiElement(class)('class') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('A') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('X') PsiElement(GT)('>') PsiWhiteSpace(' ') CLASS_BODY PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('Y') PsiElement(GT)('>') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('bar') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('a') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('A') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('String') PsiElement(GT)('>') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(GT)('>') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace('\n') PsiElement(RBRACE)('}')