List<PreContract> (@Nullable LighterASTNode expression, boolean negated) { if (expression == null) return null; if (expression.getTokenType() == PARENTH_EXPRESSION) { return handleDelegation(findExpressionChild(myTree, expression), negated); } if (isNegationExpression(expression)) { return handleDelegation(findExpressionChild(myTree, expression), !negated); } if (expression.getTokenType() == METHOD_CALL_EXPRESSION) { return singletonList(new DelegationContract(ExpressionRange.create(expression, myBody.getStartOffset()), negated)); } return null; }