a15d423db4
(required for 'suspend' on functional types).
TYPE_REFERENCE element now has MODIFIER_LIST child, which hosts annotations and modifiers for the corresponding type reference.
Annotations and modifiers written before an extension function type are now parsed as annotations and modifiers for the functional type, not the receiver type.
So, '@Ann A.(B) -> C' was '(@Ann A).(B) -> C', and became '@Ann (A.(B) -> C)'.
NB: DSL_SCOPE_VIOLATION testData updated accordingly.
Type projection variance modifiers ('in', 'out') belong to a separate modifier list under corresponding type projection (not under a type reference).
'A<in suspend T>' is 'A<(in (suspend T))>', 'A<suspend in T>' is an error.
In stub builder, create a modifier list node to host annotations and modifiers (none so far; TODO properly serialize/deserialize types with modifiers).
615 lines
18 KiB
Plaintext
Vendored
615 lines
18 KiB
Plaintext
Vendored
JetFile: FunctionsWithFunctionReceiversRecovery.kt
|
|
PACKAGE_DIRECTIVE
|
|
<empty list>
|
|
IMPORT_LIST
|
|
<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)('(')
|
|
MODIFIER_LIST
|
|
ANNOTATION
|
|
PsiElement(AT)('@')
|
|
PsiElement(LBRACKET)('[')
|
|
ANNOTATION_ENTRY
|
|
CONSTRUCTOR_CALLEE
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('a')
|
|
PsiElement(RBRACKET)(']')
|
|
PsiWhiteSpace(' ')
|
|
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')
|
|
VALUE_PARAMETER_LIST
|
|
PsiElement(LPAR)('(')
|
|
PsiElement(RPAR)(')')
|
|
PsiWhiteSpace(' ')
|
|
BLOCK
|
|
PsiElement(LBRACE)('{')
|
|
PsiElement(RBRACE)('}')
|
|
PsiWhiteSpace('\n')
|
|
FUN
|
|
PsiElement(fun)('fun')
|
|
PsiErrorElement:Expecting function name or receiver type
|
|
<empty list>
|
|
PsiWhiteSpace(' ')
|
|
FUN
|
|
PsiElement(fun)('fun')
|
|
PsiWhiteSpace(' ')
|
|
TYPE_REFERENCE
|
|
MODIFIER_LIST
|
|
ANNOTATION
|
|
PsiElement(AT)('@')
|
|
PsiElement(LBRACKET)('[')
|
|
ANNOTATION_ENTRY
|
|
CONSTRUCTOR_CALLEE
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('a')
|
|
PsiElement(RBRACKET)(']')
|
|
PsiWhiteSpace(' ')
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('T')
|
|
TYPE_ARGUMENT_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PROJECTION
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('T')
|
|
PsiElement(GT)('>')
|
|
PsiElement(DOT)('.')
|
|
VALUE_PARAMETER_LIST
|
|
PsiElement(LPAR)('(')
|
|
VALUE_PARAMETER
|
|
PsiErrorElement:Parameter name expected
|
|
<empty list>
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('A')
|
|
TYPE_ARGUMENT_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PROJECTION
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('B')
|
|
PsiElement(GT)('>')
|
|
PsiElement(RPAR)(')')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(DOT)('.')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(IDENTIFIER)('foo')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(LPAR)('(')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(RPAR)(')')
|
|
PsiWhiteSpace('\n\n')
|
|
FUN
|
|
PsiElement(fun)('fun')
|
|
PsiWhiteSpace(' ')
|
|
TYPE_REFERENCE
|
|
MODIFIER_LIST
|
|
ANNOTATION
|
|
PsiElement(AT)('@')
|
|
PsiElement(LBRACKET)('[')
|
|
ANNOTATION_ENTRY
|
|
CONSTRUCTOR_CALLEE
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('a')
|
|
PsiElement(RBRACKET)(']')
|
|
PsiWhiteSpace(' ')
|
|
FUNCTION_TYPE
|
|
VALUE_PARAMETER_LIST
|
|
PsiElement(LPAR)('(')
|
|
VALUE_PARAMETER
|
|
TYPE_REFERENCE
|
|
FUNCTION_TYPE
|
|
FUNCTION_TYPE_RECEIVER
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('T')
|
|
TYPE_ARGUMENT_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PROJECTION
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('T')
|
|
PsiElement(GT)('>')
|
|
PsiElement(DOT)('.')
|
|
VALUE_PARAMETER_LIST
|
|
PsiElement(LPAR)('(')
|
|
VALUE_PARAMETER
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('A')
|
|
TYPE_ARGUMENT_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PROJECTION
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('B')
|
|
PsiElement(GT)('>')
|
|
PsiElement(RPAR)(')')
|
|
PsiErrorElement:Expecting '->' to specify return type of a function type
|
|
PsiElement(RPAR)(')')
|
|
TYPE_REFERENCE
|
|
PsiErrorElement:Type expected
|
|
PsiElement(DOT)('.')
|
|
PsiErrorElement:Expecting comma or ')'
|
|
<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(AT)('@')
|
|
PsiErrorElement:Expecting '('
|
|
<empty list>
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(LBRACKET)('[')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(IDENTIFIER)('a')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(RBRACKET)(']')
|
|
PsiWhiteSpace(' ')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(LPAR)('(')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(LPAR)('(')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(IDENTIFIER)('A')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(LT)('<')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(IDENTIFIER)('B')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(GT)('>')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(RPAR)(')')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(MINUS)('-')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(RPAR)(')')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(DOT)('.')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(IDENTIFIER)('foo')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(LPAR)('(')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(RPAR)(')')
|
|
PsiWhiteSpace('\n\n')
|
|
FUN
|
|
PsiElement(fun)('fun')
|
|
PsiWhiteSpace(' ')
|
|
TYPE_REFERENCE
|
|
PsiElement(LPAR)('(')
|
|
FUNCTION_TYPE
|
|
VALUE_PARAMETER_LIST
|
|
PsiElement(LPAR)('(')
|
|
VALUE_PARAMETER
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('T')
|
|
PsiElement(RPAR)(')')
|
|
PsiElement(ARROW)('->')
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('G')
|
|
PsiElement(RPAR)(')')
|
|
PsiElement(DOT)('.')
|
|
PsiElement(IDENTIFIER)('foo')
|
|
TYPE_PARAMETER_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PARAMETER
|
|
PsiElement(IDENTIFIER)('T')
|
|
PsiElement(GT)('>')
|
|
PsiErrorElement:Expecting '('
|
|
<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')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(IDENTIFIER)('c')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(LT)('<')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(IDENTIFIER)('t')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(GT)('>')
|
|
PsiErrorElement:Expecting a top level declaration
|
|
PsiElement(DOT)('.')
|
|
PsiWhiteSpace('\n\n')
|
|
CLASS
|
|
PsiComment(EOL_COMMENT)('//-----------')
|
|
PsiWhiteSpace('\n')
|
|
PsiElement(class)('class')
|
|
PsiWhiteSpace(' ')
|
|
PsiElement(IDENTIFIER)('A')
|
|
TYPE_PARAMETER_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PARAMETER
|
|
PsiElement(IDENTIFIER)('X')
|
|
PsiElement(GT)('>')
|
|
PsiWhiteSpace(' ')
|
|
CLASS_BODY
|
|
PsiElement(LBRACE)('{')
|
|
PsiWhiteSpace('\n ')
|
|
FUN
|
|
PsiElement(fun)('fun')
|
|
PsiWhiteSpace(' ')
|
|
TYPE_PARAMETER_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PARAMETER
|
|
PsiElement(IDENTIFIER)('Y')
|
|
PsiElement(GT)('>')
|
|
PsiWhiteSpace(' ')
|
|
PsiElement(IDENTIFIER)('foo')
|
|
VALUE_PARAMETER_LIST
|
|
PsiElement(LPAR)('(')
|
|
PsiElement(RPAR)(')')
|
|
PsiWhiteSpace(' ')
|
|
BLOCK
|
|
PsiElement(LBRACE)('{')
|
|
PsiWhiteSpace('\n ')
|
|
PsiElement(RBRACE)('}')
|
|
PsiWhiteSpace('\n')
|
|
PsiElement(RBRACE)('}')
|
|
PsiWhiteSpace('\n\n')
|
|
FUN
|
|
PsiElement(fun)('fun')
|
|
PsiWhiteSpace(' ')
|
|
PsiElement(IDENTIFIER)('bar')
|
|
VALUE_PARAMETER_LIST
|
|
PsiElement(LPAR)('(')
|
|
VALUE_PARAMETER
|
|
PsiElement(IDENTIFIER)('a')
|
|
PsiElement(COLON)(':')
|
|
PsiWhiteSpace(' ')
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('A')
|
|
TYPE_ARGUMENT_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PROJECTION
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('String')
|
|
PsiElement(GT)('>')
|
|
PsiElement(RPAR)(')')
|
|
PsiWhiteSpace(' ')
|
|
BLOCK
|
|
PsiElement(LBRACE)('{')
|
|
PsiWhiteSpace('\n ')
|
|
DOT_QUALIFIED_EXPRESSION
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('a')
|
|
PsiElement(DOT)('.')
|
|
CALL_EXPRESSION
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('foo')
|
|
TYPE_ARGUMENT_LIST
|
|
PsiElement(LT)('<')
|
|
TYPE_PROJECTION
|
|
TYPE_REFERENCE
|
|
USER_TYPE
|
|
REFERENCE_EXPRESSION
|
|
PsiElement(IDENTIFIER)('Int')
|
|
PsiElement(GT)('>')
|
|
VALUE_ARGUMENT_LIST
|
|
PsiElement(LPAR)('(')
|
|
PsiElement(RPAR)(')')
|
|
PsiWhiteSpace('\n')
|
|
PsiElement(RBRACE)('}') |