Parser: allow function types as receiver type for function

This commit is contained in:
Pavel V. Talanov
2014-10-30 14:35:50 +03:00
parent 632bceef26
commit 951ce827a6
20 changed files with 3151 additions and 1649 deletions
@@ -930,26 +930,10 @@ public class JetParsing extends AbstractJetParsing {
myBuilder.disableJoiningComplexTokens(); myBuilder.disableJoiningComplexTokens();
// TODO: extract constant
int lastDot = matchTokenStreamPredicate(new LastBefore(
new AtSet(DOT, SAFE_ACCESS),
new AbstractTokenStreamPredicate() {
@Override
public boolean matching(boolean topLevel) {
if (topLevel && (at(EQ) || at(COLON))) return true;
if (topLevel && at(IDENTIFIER)) {
IElementType lookahead = lookahead(1);
return lookahead != LT && lookahead != DOT && lookahead != SAFE_ACCESS && lookahead != QUEST;
}
return false;
}
}));
PsiBuilder.Marker receiver = mark(); PsiBuilder.Marker receiver = mark();
parseReceiverType("property", propertyNameFollow, lastDot); boolean receiverTypeDeclared = parseReceiverType("property", propertyNameFollow);
boolean multiDeclaration = at(LPAR); boolean multiDeclaration = at(LPAR);
boolean receiverTypeDeclared = lastDot != -1;
errorIf(receiver, multiDeclaration && receiverTypeDeclared, "Receiver type is not allowed on a multi-declaration"); errorIf(receiver, multiDeclaration && receiverTypeDeclared, "Receiver type is not allowed on a multi-declaration");
@@ -1155,12 +1139,11 @@ public class JetParsing extends AbstractJetParsing {
} }
myBuilder.disableJoiningComplexTokens(); myBuilder.disableJoiningComplexTokens();
int lastDot = findLastBefore(RECEIVER_TYPE_TERMINATORS, TokenSet.create(LPAR), true);
TokenSet functionNameFollow = TokenSet.create(LT, LPAR, COLON, EQ); TokenSet functionNameFollow = TokenSet.create(LT, LPAR, COLON, EQ);
parseReceiverType("function", functionNameFollow, lastDot); boolean receiverFound = parseReceiverType("function", functionNameFollow);
parseFunctionOrPropertyName(lastDot != -1, "function", functionNameFollow); parseFunctionOrPropertyName(receiverFound, "function", functionNameFollow);
myBuilder.restoreJoiningComplexTokensState(); myBuilder.restoreJoiningComplexTokensState();
@@ -1201,11 +1184,25 @@ public class JetParsing extends AbstractJetParsing {
/* /*
* (type "." | annotations)? * (type "." | annotations)?
*/ */
private void parseReceiverType(String title, TokenSet nameFollow, int lastDot) { private boolean parseReceiverType(String title, TokenSet nameFollow) {
if (lastDot == -1) { // There's no explicit receiver type specified PsiBuilder.Marker annotations = mark();
parseAnnotations(REGULAR_ANNOTATIONS_ONLY_WITH_BRACKETS); boolean annotationsPresent = parseAnnotations(REGULAR_ANNOTATIONS_ONLY_WITH_BRACKETS);
int lastDot = lastDotAfterReceiver();
boolean receiverPresent = lastDot != -1;
if (annotationsPresent) {
if (receiverPresent) {
annotations.rollbackTo();
} }
else { else {
annotations.error("Annotations are not allowed in this position");
}
}
else {
annotations.drop();
}
if (!receiverPresent) return false;
createTruncatedBuilder(lastDot).parseTypeRef(); createTruncatedBuilder(lastDot).parseTypeRef();
if (atSet(RECEIVER_TYPE_TERMINATORS)) { if (atSet(RECEIVER_TYPE_TERMINATORS)) {
@@ -1214,7 +1211,45 @@ public class JetParsing extends AbstractJetParsing {
else { else {
errorWithRecovery("Expecting '.' before a " + title + " name", nameFollow); errorWithRecovery("Expecting '.' before a " + title + " name", nameFollow);
} }
return true;
} }
private int lastDotAfterReceiver() {
if (at(LPAR)) {
return matchTokenStreamPredicate(
new FirstBefore(
new AtSet(RECEIVER_TYPE_TERMINATORS),
new AbstractTokenStreamPredicate() {
@Override
public boolean matching(boolean topLevel) {
if (topLevel && definitelyOutOfReceiver()) {
return true;
}
return topLevel && !at(QUEST) && !at(LPAR) && !at(RPAR);
}
}
));
}
else {
return matchTokenStreamPredicate(
new LastBefore(
new AtSet(RECEIVER_TYPE_TERMINATORS),
new AbstractTokenStreamPredicate() {
@Override
public boolean matching(boolean topLevel) {
if (topLevel && (definitelyOutOfReceiver() || at(LPAR))) return true;
if (topLevel && at(IDENTIFIER)) {
IElementType lookahead = lookahead(1);
return lookahead != LT && lookahead != DOT && lookahead != SAFE_ACCESS && lookahead != QUEST;
}
return false;
}
}));
}
}
private boolean definitelyOutOfReceiver() {
return atSet(EQ, COLON, LBRACE, BY_KEYWORD) || atSet(TOPLEVEL_OBJECT_FIRST);
} }
/* /*
+3
View File
@@ -12,6 +12,7 @@ JetFile: Functions.kt
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -168,6 +169,7 @@ JetFile: Functions.kt
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -331,6 +333,7 @@ JetFile: Functions.kt
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
+2
View File
@@ -27,6 +27,7 @@ JetFile: Properties.kt
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -64,6 +65,7 @@ JetFile: Properties.kt
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
+3 -1
View File
@@ -43,6 +43,7 @@ JetFile: Properties_ERR.kt
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -58,7 +59,7 @@ JetFile: Properties_ERR.kt
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiErrorElement:Expecting ']' to close an list of annotation PsiErrorElement:Expecting ']' to close the annotation list
<empty list> <empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
@@ -84,6 +85,7 @@ JetFile: Properties_ERR.kt
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -32,6 +32,7 @@ JetFile: TypeParametersBeforeName.kt
PsiElement(IDENTIFIER)('B') PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Annotations are not allowed in this position
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -1,12 +1,10 @@
typealias f = {T<A, B>.T<x>.() : ()} typealias f = (((S).() -> S).() -> S)
typealias f = {{(S).() : ()}.() : ()} typealias f = ((T.() -> S).() -> S)
typealias f = {{T.() : ()}.() : ()} typealias f = ((T.T.() -> S).() -> S)
typealias f = {{T.T.() : ()}.() : ()} typealias f = ((T<A, B>.T<x>.() -> S).() -> S)
typealias f = {{T<A, B>.T<x>.() : ()}.() : ()} typealias f = (((S).() -> S).() -> S)
typealias f = {{(S).() : ()}.() : ()}
typealias f = [a] {[a] {(S).() : ()}.() : ()} typealias f = [a] ([a] ((S).() -> S).() -> S)
typealias f = [a] {[a] {T.() : ()}.() : ()} typealias f = [a] ([a] (T.() -> S).() -> S)
typealias f = [a] {[a] {T.T.() : ()}.() : ()} typealias f = [a] ([a] (T<A, B>.() -> S).() -> S)
typealias f = [a] {[a] {T<A, B>.T<x>.() : ()}.() : ()} typealias f = [a] ([a] ((S).() -> S).() -> S)
typealias f = [a] {[a] {(S).() : ()}.() : ()}
@@ -9,13 +9,151 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Expecting a top level declaration FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
MODIFIER_LIST PsiElement(LPAR)('(')
ANNOTATION_ENTRY FUNCTION_TYPE
CONSTRUCTOR_CALLEE FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
PsiElement(LPAR)('(')
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
USER_TYPE USER_TYPE
@@ -47,331 +185,76 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('x') PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S') PsiElement(IDENTIFIER)('S')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('x')
PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S') PsiElement(IDENTIFIER)('S')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
PsiElement(LPAR)('(')
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
TYPEDEF TYPEDEF
PsiElement(typealias)('typealias') PsiElement(typealias)('typealias')
@@ -390,12 +273,11 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiErrorElement:Type expected
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(')
PsiElement(LBRACE)('{') FUNCTION_TYPE
MODIFIER_LIST FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -406,51 +288,39 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
MODIFIER_LIST FUNCTION_TYPE
ANNOTATION_ENTRY FUNCTION_TYPE_RECEIVER
CONSTRUCTOR_CALLEE TYPE_REFERENCE
PsiElement(LPAR)('(')
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S') PsiElement(IDENTIFIER)('S')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
TYPEDEF TYPEDEF
PsiElement(typealias)('typealias') PsiElement(typealias)('typealias')
@@ -469,12 +339,11 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiErrorElement:Type expected
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(')
PsiElement(LBRACE)('{') FUNCTION_TYPE
MODIFIER_LIST FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -485,47 +354,37 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(')
PsiElement(LBRACE)('{') FUNCTION_TYPE
MODIFIER_LIST FUNCTION_TYPE_RECEIVER
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
TYPEDEF TYPEDEF
PsiElement(typealias)('typealias') PsiElement(typealias)('typealias')
@@ -544,12 +403,11 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiErrorElement:Type expected
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(')
PsiElement(LBRACE)('{') FUNCTION_TYPE
MODIFIER_LIST FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -560,92 +418,10 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration FUNCTION_TYPE
PsiElement(RPAR)(')') FUNCTION_TYPE_RECEIVER
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
TYPEDEF
PsiElement(typealias)('typealias')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiErrorElement:Type expected
<empty list>
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
MODIFIER_LIST
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
@@ -665,48 +441,29 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
PsiElement(IDENTIFIER)('B') PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION VALUE_PARAMETER_LIST
PsiElement(IDENTIFIER)('T') PsiElement(LPAR)('(')
TYPE_ARGUMENT_LIST PsiElement(RPAR)(')')
PsiElement(LT)('<') PsiWhiteSpace(' ')
TYPE_PROJECTION PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('x') PsiElement(IDENTIFIER)('S')
PsiElement(GT)('>') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
TYPEDEF TYPEDEF
PsiElement(typealias)('typealias') PsiElement(typealias)('typealias')
@@ -725,12 +482,11 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiErrorElement:Type expected
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(LPAR)('(')
PsiElement(LBRACE)('{') FUNCTION_TYPE
MODIFIER_LIST FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
@@ -741,48 +497,36 @@ JetFile: FunctionTypesWithFunctionReceivers.kt
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
MODIFIER_LIST FUNCTION_TYPE
ANNOTATION_ENTRY FUNCTION_TYPE_RECEIVER
CONSTRUCTOR_CALLEE TYPE_REFERENCE
PsiElement(LPAR)('(')
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S') PsiElement(IDENTIFIER)('S')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('S')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
@@ -1,12 +1,11 @@
fun {[a] T<T>.(A<B>) : ()}.foo() fun ([a] T<T>.(A<B>) -> Unit).foo()
fun {[a] T<T>.(A<B>) : ()}.foo(); fun ([a] T<T>.(A<B>) -> C<D, E>).foo();
fun {[a] T<T>.(A<B>) : ()}.foo() {} fun [a] ([a] T<T>.(A<B>) -> R).foo() {}
fun [a] {[a] T<T>.(A<B>) : ()}.foo() {} fun <A, B> [a] ((B.(A ->B)) -> Unit).foo()
fun <A, B> [a] {() : Unit}.foo() fun <A, B> [a] ((A, B) -> Unit).foo()
fun ((T) -> G)?.foo()
fun ((T) -> G)??.foo()
// And tuples, too //--------------
fun (A, B).foo() : Unit {} fun f<T>()
a.b class C
// Recovery
fun fun [a] T<T>.(A<B>) : ().-()
@@ -5,28 +5,20 @@ JetFile: FunctionsWithFunctionReceivers.kt
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Expecting '.' before a function name FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
PsiErrorElement:Expecting function name ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
PsiErrorElement:Expecting '('
<empty list>
MODIFIER_LIST
ANNOTATION_ENTRY ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
@@ -38,13 +30,10 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
MODIFIER_LIST VALUE_PARAMETER
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
@@ -57,57 +46,39 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B') PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
FUN
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Expecting '.' before a function name FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
PsiErrorElement:Expecting function name ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
PsiErrorElement:Expecting '('
<empty list>
MODIFIER_LIST
ANNOTATION_ENTRY ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
@@ -119,13 +90,10 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
MODIFIER_LIST VALUE_PARAMETER
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
@@ -138,119 +106,37 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B') PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION 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)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(SEMICOLON)(';') PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Expecting '.' before a function name
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting function name
PsiElement(LBRACKET)('[')
PsiErrorElement:Expecting '('
<empty list>
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
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)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
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)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
FUN FUN
PsiElement(fun)('fun') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -264,29 +150,21 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiErrorElement:Type expected
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting '.' before a function name PsiElement(LPAR)('(')
PsiElement(LBRACE)('{') FUNCTION_TYPE
PsiErrorElement:Expecting function name FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
PsiErrorElement:Expecting '('
<empty list>
MODIFIER_LIST
ANNOTATION_ENTRY ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
@@ -298,13 +176,10 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
MODIFIER_LIST VALUE_PARAMETER
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
@@ -317,34 +192,23 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B') PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('R')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
FUN FUN
@@ -370,161 +234,209 @@ JetFile: FunctionsWithFunctionReceivers.kt
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiErrorElement:Type expected
<empty list>
PsiWhiteSpace(' ')
PsiErrorElement:Expecting '.' before a function name
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting function name
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
FUN
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
PsiComment(EOL_COMMENT)('// And tuples, too')
PsiWhiteSpace('\n')
PsiElement(fun)('fun')
PsiErrorElement:Expecting function name or receiver type
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
FUNCTION_TYPE
VALUE_PARAMETER_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_PARAMETER VALUE_PARAMETER
PsiElement(IDENTIFIER)('A') TYPE_REFERENCE
PsiErrorElement:Parameters must have type annotation PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiElement(COMMA)(',') FUNCTION_TYPE_RECEIVER
PsiWhiteSpace(' ') TYPE_REFERENCE
VALUE_PARAMETER USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B') PsiElement(IDENTIFIER)('B')
PsiErrorElement:Parameters must have type annotation
<empty list>
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
MODIFIER_LIST VALUE_PARAMETER_LIST
ANNOTATION_ENTRY PsiElement(LPAR)('(')
CONSTRUCTOR_CALLEE VALUE_PARAMETER
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('A')
VALUE_ARGUMENT_LIST PsiErrorElement:Expecting comma or ')'
PsiElement(LPAR)('(') <empty list>
PsiWhiteSpace(' ')
PsiErrorElement:Expecting ')'
PsiElement(ARROW)('->')
PsiErrorElement:Expecting '->' to specify return type of a function type
<empty list>
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(RPAR)(')')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit') PsiElement(IDENTIFIER)('Unit')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n\n')
PsiComment(EOL_COMMENT)('// Recovery')
PsiWhiteSpace('\n')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Expecting '.' before a function name PsiErrorElement:Expecting '.' before a function name
PsiElement(fun)('fun') PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting function name PsiErrorElement:Expecting function name
PsiElement(LBRACKET)('[') PsiElement(DOT)('.')
PsiErrorElement:Expecting '(' PsiErrorElement:Expecting '('
<empty list> <empty list>
FUN
MODIFIER_LIST MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
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)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
MODIFIER_LIST FUNCTION_TYPE
ANNOTATION_ENTRY VALUE_PARAMETER_LIST
CONSTRUCTOR_CALLEE PsiElement(LPAR)('(')
VALUE_PARAMETER
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A') PsiElement(IDENTIFIER)('A')
TYPE_ARGUMENT_LIST PsiElement(COMMA)(',')
PsiElement(LT)('<') PsiWhiteSpace(' ')
TYPE_PROJECTION VALUE_PARAMETER
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B') PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration PsiElement(ARROW)('->')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration TYPE_REFERENCE
PsiElement(LPAR)('(') USER_TYPE
PsiErrorElement:Expecting a top level declaration REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration PsiElement(IDENTIFIER)('foo')
PsiElement(MINUS)('-') VALUE_PARAMETER_LIST
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
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')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
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')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
PsiComment(EOL_COMMENT)('//--------------')
PsiWhiteSpace('\n')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
CLASS
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiWhiteSpace(' ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('C')
@@ -0,0 +1,5 @@
fun ([a] T<T>.(A<B>) -> Unit).foo()
fun ([a] T<T>.(A<B>) -> C<D, E>).foo();
fun [a] ([a] T<T>.(A<B>) -> R).foo() {}
fun <A, B> [a] (() -> Unit).foo()
[a] fun <A, B> [a] ((A, B) -> Unit).foo()
@@ -0,0 +1,321 @@
JetFile: FunctionsWithFunctionReceiversAnnotations.kt
PACKAGE_DIRECTIVE
<empty list>
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION
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(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION
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(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
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)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION
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(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('R')
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')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
FUNCTION_TYPE
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
FUN
MODIFIER_LIST
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
FUNCTION_TYPE
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_PARAMETER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
@@ -0,0 +1,28 @@
fun ((T) -> G).foo<P> { }
fun ((T) -> G).foo { }
fun ((T) -> G).foo<P>
fun ((T) -> G).foo = 0
fun ((T) -> G)?.foo { }
fun ((T) -> G)??.foo { }
fun ([a] T<T>.(A<B>, C<D, E>) -> ).foo() {}
fun fun [a] T<T>.(A<B>).foo()
fun [a] (T<T>.(A<B>)).foo()
fun [a] ((A<B>)-).foo()
fun ((T)->G).foo<T>
class C<T>.
fun foo<c> {}
c<t>.
//-----------
class A<X> {
fun foo<Y>() {
}
}
fun bar(a: A<String>) {
a.foo<Int>()
}
@@ -0,0 +1,645 @@
JetFile: FunctionsWithFunctionReceiversRecovery.kt
PACKAGE_DIRECTIVE
<empty 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 '('
<empty list>
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 '('
<empty list>
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 '('
<empty list>
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 '('
<empty list>
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 '('
<empty list>
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 '('
<empty list>
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(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
<empty list>
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')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting function name or receiver type
PsiElement(fun)('fun')
PsiErrorElement:Expecting '('
<empty list>
PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
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)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
PsiErrorElement:Expecting a top level declaration
PsiElement(LPAR)('(')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
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)('>')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')')
PsiErrorElement:Expecting a top level declaration
PsiElement(DOT)('.')
FUN
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
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 ')'
<empty list>
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(LBRACKET)('[')
PsiErrorElement:Expecting '('
<empty list>
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
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)('(')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
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)('>')
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)('.')
FUN
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
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 '('
<empty list>
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 '('
<empty list>
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('t')
PsiElement(GT)('>')
PsiElement(DOT)('.')
PsiWhiteSpace('\n\n')
PsiComment(EOL_COMMENT)('//-----------')
PsiWhiteSpace('\n')
PsiErrorElement:Expecting type name
PsiElement(class)('class')
PsiWhiteSpace(' ')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('X')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('Y')
PsiElement(GT)('>')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PsiErrorElement:Expecting a top level declaration
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)('}')
@@ -1,34 +1,34 @@
val {() : ()}.foo val ((Unit) -> Unit).foo
val {foo.bar.() : ()}.foo val (foo.bar.() -> Unit).foo
val {foo.bar.() : ()}.foo = foo val (foo.bar.() -> Unit).foo = foo
get() {} get() {}
set(it) {} set(it) {}
val {foo.bar.() : ()}.foo = foo val (foo.bar.() -> Unit).foo = foo
get() : Foo {} get() : Foo {}
set(it) {} set(it) {}
val {foo.bar.() : ()}.foo : bar = foo val (foo.bar.() -> Unit).foo : bar = foo
[a] public get() {} [a] public get() {}
open set(a : b) {} open set(a : b) {}
val {foo.bar.() : ()}.foo : bar = foo val (foo.bar.() -> Unit).foo : bar = foo
open set(a : b) {} open set(a : b) {}
val {foo.bar.() : ()}.foo : bar = foo val (foo.bar.() -> Unit).foo : bar = foo
[a] public get() {} [a] public get() {}
// Error recovery: // Error recovery:
val {foo.bar.() : ()}.foo = foo val (foo.bar.() -> Unit).foo = foo
set) {} set) {}
dfget() {} dfget() {}
val {foo.bar.() : ()}.foo = foo val (foo.bar.() -> Unit).foo = foo
get(foo) {} get(foo) {}
set() {} set() {}
set() {} set() {}
@@ -5,18 +5,24 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiErrorElement:Property getter or setter expected
PsiElement(LBRACE)('{')
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
FUNCTION_TYPE
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
@@ -24,22 +30,29 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
@@ -47,168 +60,164 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST PROPERTY_ACCESSOR
ANNOTATION_ENTRY PsiElement(get)('get')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('get')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST PROPERTY_ACCESSOR
ANNOTATION_ENTRY PsiElement(set)('set')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('set')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT VALUE_PARAMETER_LIST
REFERENCE_EXPRESSION VALUE_PARAMETER
PsiElement(IDENTIFIER)('it') PsiElement(IDENTIFIER)('it')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST PROPERTY_ACCESSOR
ANNOTATION_ENTRY PsiElement(get)('get')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('get')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo') PsiElement(IDENTIFIER)('Foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST PROPERTY_ACCESSOR
ANNOTATION_ENTRY PsiElement(set)('set')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('set')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT VALUE_PARAMETER_LIST
REFERENCE_EXPRESSION VALUE_PARAMETER
PsiElement(IDENTIFIER)('it') PsiElement(IDENTIFIER)('it')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n\n') PsiWhiteSpace('\n\n\n')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
MODIFIER_LIST MODIFIER_LIST
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
@@ -222,38 +231,24 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(public)('public') PsiElement(public)('public')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ANNOTATION_ENTRY PsiElement(get)('get')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('get')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
MODIFIER_LIST MODIFIER_LIST
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ANNOTATION_ENTRY PsiElement(set)('set')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('set')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT VALUE_PARAMETER_LIST
BINARY_WITH_TYPE VALUE_PARAMETER
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
@@ -262,59 +257,62 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiElement(IDENTIFIER)('b') PsiElement(IDENTIFIER)('b')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n\n') PsiWhiteSpace('\n\n\n')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
MODIFIER_LIST MODIFIER_LIST
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ANNOTATION_ENTRY PsiElement(set)('set')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('set')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT VALUE_PARAMETER_LIST
BINARY_WITH_TYPE VALUE_PARAMETER
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
@@ -323,42 +321,53 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiElement(IDENTIFIER)('b') PsiElement(IDENTIFIER)('b')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n\n') PsiWhiteSpace('\n\n\n')
PROPERTY PROPERTY
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
MODIFIER_LIST MODIFIER_LIST
ANNOTATION ANNOTATION
PsiElement(LBRACKET)('[') PsiElement(LBRACKET)('[')
@@ -372,19 +381,12 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(public)('public') PsiElement(public)('public')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
ANNOTATION_ENTRY PsiElement(get)('get')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('get')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PsiComment(EOL_COMMENT)('// Error recovery:') PsiComment(EOL_COMMENT)('// Error recovery:')
@@ -393,42 +395,52 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST PROPERTY_ACCESSOR
ANNOTATION_ENTRY PsiElement(set)('set')
CONSTRUCTOR_CALLEE PsiErrorElement:Accessor body expected
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('set')
PsiErrorElement:Expecting a top level declaration
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiErrorElement:Expecting '('
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration VALUE_PARAMETER_LIST
VALUE_PARAMETER
PsiErrorElement:Expecting parameter name
<empty list>
PsiErrorElement:Expecting ')'
<empty list>
BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST MODIFIER_LIST
@@ -451,62 +463,59 @@ JetFile: PropertiesWithFunctionReceivers.kt
PsiElement(val)('val') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
PsiErrorElement:Type expected PsiElement(LPAR)('(')
<empty list> FUNCTION_TYPE
PsiErrorElement:Property getter or setter expected FUNCTION_TYPE_RECEIVER
PsiElement(LBRACE)('{') TYPE_REFERENCE
USER_TYPE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.') PsiElement(DOT)('.')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST PROPERTY_ACCESSOR
ANNOTATION_ENTRY PsiElement(get)('get')
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('get')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT PsiErrorElement:Expecting ')'
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration BLOCK
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(set)('set')
PsiElement(LPAR)('(')
VALUE_PARAMETER_LIST
VALUE_PARAMETER
PsiErrorElement:Expecting parameter name
<empty list>
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
MODIFIER_LIST
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('set')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiErrorElement:Expecting a top level declaration
PsiElement(LBRACE)('{')
PsiErrorElement:Expecting a top level declaration
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MODIFIER_LIST MODIFIER_LIST
@@ -0,0 +1,5 @@
val ([a] T<T>.(A<B>) -> Unit).foo: P
val ([a] T<T>.(A<B>) -> C<D, E>).foo: P
val [a] ([a] T<T>.(A<B>) -> R).foo: P
val <A, B> [a] (() -> Unit).foo: P
[a] val <A, B> [a] ((A, B) -> Unit).foo: P
@@ -0,0 +1,331 @@
JetFile: PropertiesWithFunctionReceiversAnnotations.kt
PACKAGE_DIRECTIVE
<empty list>
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION
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(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('P')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION
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(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
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)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('P')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
FUNCTION_TYPE
FUNCTION_TYPE_RECEIVER
TYPE_REFERENCE
ANNOTATION
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(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('R')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('P')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
FUNCTION_TYPE
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('P')
PsiWhiteSpace('\n')
PROPERTY
MODIFIER_LIST
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
PsiElement(LBRACKET)('[')
ANNOTATION_ENTRY
CONSTRUCTOR_CALLEE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
FUNCTION_TYPE
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('A')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_PARAMETER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('B')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(ARROW)('->')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Unit')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('P')
@@ -0,0 +1,14 @@
val ((T) -> G).foo<P> { }
val ((T) -> G).foo get{ }
val ((T) -> G).foo<P>
val ((T) -> G).foo: = 0
val ((T) -> G)?.foo
val ((T) -> G)??.foo
val (T<T>.(A<B>, C<D, E>) -> ).foo {}
val val [a] T<T>.(A<B>).foo()
val [a] (T<T>.(A<B>)).foo()
val [a] ((A<B>)-).foo()
val c<T> by A.B
@@ -0,0 +1,424 @@
JetFile: PropertiesWithFunctionReceiversRecovery.kt
PACKAGE_DIRECTIVE
<empty list>
PROPERTY
PsiElement(val)('val')
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:Property getter or setter expected
PsiElement(LT)('<')
PsiElement(IDENTIFIER)('P')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiElement(LBRACE)('{')
PsiWhiteSpace(' ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
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')
PsiWhiteSpace(' ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiErrorElement:Accessor body expected
<empty list>
PsiErrorElement:Expecting '('
<empty list>
PsiErrorElement:Expecting ')'
<empty list>
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace(' ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
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:Property getter or setter expected
PsiElement(LT)('<')
PsiElement(IDENTIFIER)('P')
PsiElement(GT)('>')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
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')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
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')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
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')
PsiWhiteSpace('\n\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiElement(LPAR)('(')
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(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
<empty list>
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
PsiErrorElement:Property getter or setter expected
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PROPERTY
PsiElement(val)('val')
PsiErrorElement:Expecting property name or receiver type
<empty list>
PsiWhiteSpace(' ')
PsiErrorElement:Property getter or setter expected
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(LBRACKET)('[')
PsiElement(IDENTIFIER)('a')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('T')
PsiElement(LT)('<')
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
PsiElement(LPAR)('(')
PsiElement(IDENTIFIER)('A')
PsiElement(LT)('<')
PsiElement(IDENTIFIER)('B')
PsiElement(GT)('>')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('foo')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
ANNOTATION
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 ')'
<empty list>
PsiErrorElement:Expecting ')'
PsiElement(IDENTIFIER)('foo')
PsiErrorElement:Expecting '->' to specify return type of a function type
PsiElement(LPAR)('(')
TYPE_REFERENCE
PsiErrorElement:Type expected
PsiElement(RPAR)(')')
PsiErrorElement:Expecting '.' before a property name
<empty list>
PsiWhiteSpace('\n')
MULTI_VARIABLE_DECLARATION
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiErrorElement:Receiver type is not allowed on a multi-declaration
TYPE_REFERENCE
ANNOTATION
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
PsiElement(LPAR)('(')
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 comma or ')'
<empty list>
PsiErrorElement:Expecting ')'
PsiElement(MINUS)('-')
PsiErrorElement:Expecting '->' to specify return type of a function type
PsiElement(RPAR)(')')
TYPE_REFERENCE
PsiErrorElement:Type expected
PsiElement(DOT)('.')
PsiErrorElement:Expecting '.' before a property name
PsiElement(IDENTIFIER)('foo')
PsiErrorElement:Multi-declarations are only allowed for local variables/values
PsiElement(LPAR)('(')
PsiErrorElement:Expecting a name
<empty list>
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('c')
PsiErrorElement:Property getter or setter expected
PsiElement(LT)('<')
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiElement(by)('by')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('A')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('B')
@@ -905,11 +905,35 @@ public class JetParsingTestGenerated extends AbstractJetParsingTest {
doParsingTest(fileName); doParsingTest(fileName);
} }
@TestMetadata("FunctionsWithFunctionReceiversAnnotations.kt")
public void testFunctionsWithFunctionReceiversAnnotations() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/functionReceivers/FunctionsWithFunctionReceiversAnnotations.kt");
doParsingTest(fileName);
}
@TestMetadata("FunctionsWithFunctionReceiversRecovery.kt")
public void testFunctionsWithFunctionReceiversRecovery() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/functionReceivers/FunctionsWithFunctionReceiversRecovery.kt");
doParsingTest(fileName);
}
@TestMetadata("PropertiesWithFunctionReceivers.kt") @TestMetadata("PropertiesWithFunctionReceivers.kt")
public void testPropertiesWithFunctionReceivers() throws Exception { public void testPropertiesWithFunctionReceivers() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/functionReceivers/PropertiesWithFunctionReceivers.kt"); String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/functionReceivers/PropertiesWithFunctionReceivers.kt");
doParsingTest(fileName); doParsingTest(fileName);
} }
@TestMetadata("PropertiesWithFunctionReceiversAnnotations.kt")
public void testPropertiesWithFunctionReceiversAnnotations() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/functionReceivers/PropertiesWithFunctionReceiversAnnotations.kt");
doParsingTest(fileName);
}
@TestMetadata("PropertiesWithFunctionReceiversRecovery.kt")
public void testPropertiesWithFunctionReceiversRecovery() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/functionReceivers/PropertiesWithFunctionReceiversRecovery.kt");
doParsingTest(fileName);
}
} }
@TestMetadata("compiler/testData/psi/greatSyntacticShift") @TestMetadata("compiler/testData/psi/greatSyntacticShift")