KtFile: FunctionWithMultilineContract.kt PACKAGE_DIRECTIVE IMPORT_LIST FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('baz') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('num') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE NULLABLE_TYPE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(QUEST)('?') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_PARAMETER PsiElement(IDENTIFIER)('element') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('MyElement') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_PARAMETER PsiElement(IDENTIFIER)('block') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE 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(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiWhiteSpace(' ') PsiElement(contract)('contract') PsiWhiteSpace(' ') CONTRACT_EFFECT_LIST PsiElement(LBRACKET)('[') PsiWhiteSpace('\n ') CONTRACT_EFFECT CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('callsInPlace') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('block') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_ARGUMENT DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('InvocationKind') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('EXACTLY_ONCE') PsiElement(RPAR)(')') PsiElement(COMMA)(',') PsiWhiteSpace('\n ') CONTRACT_EFFECT BINARY_EXPRESSION CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('returns') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(IDENTIFIER)('implies') PsiWhiteSpace(' ') PARENTHESIZED PsiElement(LPAR)('(') BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('num') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EXCLEQ)('!=') PsiWhiteSpace(' ') NULL PsiElement(null)('null') PsiElement(RPAR)(')') PsiElement(COMMA)(',') PsiWhiteSpace('\n ') CONTRACT_EFFECT BINARY_EXPRESSION CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('returns') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(IDENTIFIER)('implies') PsiWhiteSpace(' ') PARENTHESIZED PsiElement(LPAR)('(') BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('element') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EXCLEQ)('!=') PsiWhiteSpace(' ') NULL PsiElement(null)('null') PsiElement(RPAR)(')') PsiWhiteSpace('\n') PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('require') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('num') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EXCLEQ)('!=') PsiWhiteSpace(' ') NULL PsiElement(null)('null') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('require') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('element') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EXCLEQ)('!=') PsiWhiteSpace(' ') NULL PsiElement(null)('null') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('block') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') IF PsiElement(if)('if') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('num') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(GTEQ)('>=') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('0') PsiElement(RPAR)(')') PsiWhiteSpace(' ') THEN BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') RETURN PsiElement(return)('return') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiElement(SEMICOLON)(';') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') RETURN PsiElement(return)('return') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('0') PsiWhiteSpace('\n') PsiElement(RBRACE)('}')