ContractReturnValue (LighterASTNode expression) { expression = skipParenthesesDown(myTree, expression); if (expression == null) return returnAny(); IElementType type = expression.getTokenType(); if (type == NEW_EXPRESSION) { return returnNew(); } if (type == THIS_EXPRESSION) { return returnThis(); } if (type == REFERENCE_EXPRESSION) { int paramIndex = resolveParameter(expression); if (paramIndex >= 0 && (assignedParameters == null || !assignedParameters.get(paramIndex))) { return returnParameter(paramIndex); } } return returnAny(); }