JetFile: When.jet NAMESPACE_HEADER FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') RETURN PsiElement(return)('return') PsiWhiteSpace(' ') BOOLEAN_CONSTANT PsiElement(false)('false') PsiWhiteSpace('\n\n ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') FUNCTION_LITERAL_EXPRESSION FUNCTION_LITERAL PsiElement(LBRACE)('{') BLOCK WHEN PsiElement(when)('when') PsiElement(LPAR)('(') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('x') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace(' ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiWhiteSpace(' ') PsiElement(RBRACE)('}') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ') PsiComment(EOL_COMMENT)('// foo') PsiWhiteSpace('\n ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('b') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LPAR)('(') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n \n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LPAR)('(') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LPAR)('(') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Tree') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') EXPRESSION_PATTERN NULL PsiElement(null)('null') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') EXPRESSION_PATTERN INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('A') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') EXPRESSION_PATTERN FLOAT_CONSTANT PsiElement(FLOAT_CONSTANT)('1.0') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') EXPRESSION_PATTERN CHARACTER_CONSTANT PsiElement(CHARACTER_LITERAL)(''c'') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') EXPRESSION_PATTERN STRING_TEMPLATE PsiElement(OPEN_QUOTE)('"') LITERAL_STRING_TEMPLATE_ENTRY PsiElement(REGULAR_STRING_PART)('sadfsa') PsiElement(CLOSING_QUOTE)('"') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') EXPRESSION_PATTERN STRING_CONSTANT PsiElement(RAW_STRING_LITERAL)('"""ddd"""') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') WILDCARD_PATTERN PsiElement(MUL)('*') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Foo') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TUPLE_PATTERN PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Foo') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LPAR)('(') WHEN PsiElement(when)('when') PsiElement(LPAR)('(') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LPAR)('(') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n\n ') PsiElement(RBRACE)('}') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n\n ') PsiElement(RBRACE)('}') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LPAR)('(') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Tree') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Tree') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY EXPRESSION_PATTERN NULL PsiElement(null)('null') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('r') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY PsiElement(IDENTIFIER)('foo') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY PsiElement(IDENTIFIER)('bar') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION ROOT_NAMESPACE PsiElement(package)('package') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY EXPRESSION_PATTERN INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IN_RANGE OPERATION_REFERENCE PsiElement(in)('in') PsiWhiteSpace(' ') BINARY_EXPRESSION INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') OPERATION_REFERENCE PsiElement(RANGE)('..') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('dsf') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IN_RANGE OPERATION_REFERENCE PsiElement(NOT_IN)('!in') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('sd') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(NOT_IS)('!is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('t') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('d') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') PsiErrorElement:Pattern expected PsiElement(LPAR)('(') PsiElement(IDENTIFIER)('foo') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Bar') PsiWhiteSpace(' ') WHEN_ENTRY WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN PsiErrorElement:Expecting an expression, is-condition or in-condition PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('fgpp') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TUPLE_PATTERN PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY EXPRESSION_PATTERN INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Foo') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY WILDCARD_PATTERN PsiElement(MUL)('*') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Foo') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('bar') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('d') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TUPLE_PATTERN PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Foo') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') WHEN_CONDITION_IN_RANGE OPERATION_REFERENCE PsiElement(in)('in') PsiWhiteSpace(' ') BINARY_EXPRESSION INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') OPERATION_REFERENCE PsiElement(RANGE)('..') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY WILDCARD_PATTERN PsiElement(MUL)('*') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('_') PsiWhiteSpace(' ') WHEN_CONDITION_IS_PATTERN PsiElement(NOT_IS)('!is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Foo') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('bar') PsiWhiteSpace(' ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('bar') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(GT)('>') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(RPAR)(')') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('d') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TUPLE_PATTERN PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Foo') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace('\n ') WHEN_ENTRY PsiElement(else)('else') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LPAR)('(') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('e') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Tree') PsiElement(COMMA)(',') PsiWhiteSpace('\n ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Tree') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY EXPRESSION_PATTERN NULL PsiElement(null)('null') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('r') PsiElement(RPAR)(')') PsiElement(COMMA)(',') PsiWhiteSpace('\n ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiElement(COMMA)(',') PsiWhiteSpace(' ') WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiElement(COMMA)(',') PsiWhiteSpace(' ') WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('bar') PsiElement(COMMA)(',') PsiWhiteSpace(' ') WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN BINARY_EXPRESSION INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(PLUS)('+') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('3') PsiElement(COMMA)(',') PsiWhiteSpace('\n ') WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_IS_PATTERN PsiElement(is)('is') PsiWhiteSpace(' ') DECOMPOSER_PATTERN DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') DECOMPOSER_ARGUMENT_LIST PsiElement(HASH)('#') PsiElement(LPAR)('(') TUPLE_PATTERN_ENTRY BINDING_PATTERN PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('b') PsiElement(COMMA)(',') PsiWhiteSpace(' ') TUPLE_PATTERN_ENTRY TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('whenWithoutCondition') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('i') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('j') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('12') PsiWhiteSpace('\n ') WHEN PsiElement(when)('when') PsiWhiteSpace(' ') PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('3') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') PREFIX_EXPRESSION OPERATION_REFERENCE PsiElement(MINUS)('-') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('i') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQEQ)('==') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('3') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') PREFIX_EXPRESSION OPERATION_REFERENCE PsiElement(MINUS)('-') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('j') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(LT)('<') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('i') PsiElement(COMMA)(',') PsiWhiteSpace(' ') WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('j') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQEQ)('==') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('i') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') PREFIX_EXPRESSION OPERATION_REFERENCE PsiElement(MINUS)('-') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiWhiteSpace('\n ') WHEN_ENTRY WHEN_CONDITION_WITH_EXPRESSION EXPRESSION_PATTERN BINARY_WITH_PATTERN REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('i') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(is)('is') PsiWhiteSpace(' ') TYPE_PATTERN TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiWhiteSpace('\n ') WHEN_ENTRY PsiElement(else)('else') PsiWhiteSpace(' ') PsiElement(ARROW)('->') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n') PsiElement(RBRACE)('}')