JetFile: PolymorphicClassObjects.jet NAMESPACE CLASS MODIFIER_LIST PsiElement(virtual)('virtual') PsiWhiteSpace(' ') PsiElement(class)('class') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Builder') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('E') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PARAMETER PsiElement(IDENTIFIER)('R') PsiElement(GT)('>') PsiWhiteSpace(' ') CLASS_BODY PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') FUN MODIFIER_LIST ATTRIBUTE_ANNOTATION PsiElement(LBRACKET)('[') ATTRIBUTE TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('operator') PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('plusAssign') TYPE_PARAMETER_LIST VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('item') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('E') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('result') TYPE_PARAMETER_LIST VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('R') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') CLASS MODIFIER_LIST PsiElement(virtual)('virtual') PsiWhiteSpace(' ') PsiElement(class)('class') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Buildable') PsiWhiteSpace(' ') TYPE_PARAMETER_LIST CLASS_BODY PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('newBuilder') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('E') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PARAMETER PsiElement(IDENTIFIER)('R') PsiElement(GT)('>') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Builder') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('E') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('R') PsiElement(GT)('>') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') CLASS PsiElement(class)('class') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('List') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace(' ') CLASS_BODY PsiElement(LBRACE)('{') PsiWhiteSpace('\n\n ') CLASS_OBJECT PsiElement(class)('class') PsiWhiteSpace(' ') OBJECT_LITERAL PsiElement(object)('object') PsiWhiteSpace(' ') DELEGATION_SPECIFIER_LIST DELEGATOR_SUPER_CLASS TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Buildable') PsiWhiteSpace(' ') CLASS_BODY PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') FUN MODIFIER_LIST PsiElement(override)('override') PsiWhiteSpace(' ') PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('newBuilder') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('E') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PARAMETER PsiElement(IDENTIFIER)('R') PsiElement(GT)('>') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Builder') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('E') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('R') PsiElement(GT)('>') PsiWhiteSpace('\n\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') EXTENSION PsiElement(extension)('extension') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Map') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('E') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PARAMETER PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace('\n ') PsiElement(where)('where') PsiWhiteSpace('\n ') TYPE_CONSTRAINT_LIST TYPE_CONSTRAINT TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Iterable') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('E') PsiElement(GT)('>') PsiElement(COMMA)(',') PsiWhiteSpace('\n ') TYPE_CONSTRAINT PsiElement(class)('class') PsiWhiteSpace(' ') PsiElement(object)('object') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Buildable') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('E') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace(' ') PsiElement(for)('for') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiWhiteSpace(' ') CLASS_BODY PsiElement(LBRACE)('{') PsiWhiteSpace('\n\n ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('map') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('R') PsiElement(GT)('>') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('f') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE FUNCTION_TYPE PsiElement(LBRACE)('{') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('E') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('R') PsiElement(RBRACE)('}') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('R') PsiElement(GT)('>') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') FUNCTION_LITERAL PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') BODY PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('builder') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('newBuilder') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') FOR PsiElement(for)('for') PsiWhiteSpace(' ') PsiElement(LPAR)('(') LOOP_PARAMETER PsiElement(IDENTIFIER)('e') PsiWhiteSpace(' ') PsiElement(in)('in') PsiWhiteSpace(' ') LOOP_RANGE THIS_EXPRESSION PsiElement(this)('this') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BODY FUNCTION_LITERAL PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') BODY BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('builder') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(PLUSEQ)('+=') PsiWhiteSpace(' ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('f') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('builder') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('result') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') PsiElement(RBRACE)('}')