private void checkPropertyDescriptor( @NotNull JetExpression expression, @NotNull PropertyDescriptor propertyDescriptor) { // Deprecated for Property if (reportAnnotationIfNeeded(expression, propertyDescriptor, propertyDescriptor.isVar())) { return; } // Deprecated for Getter (val, var), Setter (var) if (!propertyDescriptor.isVar()) { checkPropertyGetter(propertyDescriptor, expression); } else { IElementType operation = null; JetBinaryExpression binaryExpression = PsiTreeUtil.getParentOfType(expression, JetBinaryExpression.class); if (binaryExpression != null) { JetExpression left = binaryExpression.getLeft(); if (left == expression) { operation = binaryExpression.getOperationToken(); } else { JetReferenceExpression[] jetReferenceExpressions = PsiTreeUtil.getChildrenOfType(left, JetReferenceExpression.class); if (jetReferenceExpressions != null) { for (JetReferenceExpression expr : jetReferenceExpressions) { if (expr == expression) { operation = binaryExpression.getOperationToken(); break; } } } } } else { JetUnaryExpression unaryExpression = PsiTreeUtil.getParentOfType(expression, JetUnaryExpression.class); if (unaryExpression != null) { operation = unaryExpression.getOperationReference().getReferencedNameElementType(); } } if (operation != null && PROPERTY_SET_OPERATIONS.contains(operation)) { checkPropertySetter(propertyDescriptor, expression); } else { checkPropertyGetter(propertyDescriptor, expression); } } }
public static Call makeCall( @NotNull ReceiverValue baseAsReceiver, JetUnaryExpression expression) { return makeCall( expression, baseAsReceiver, null, expression.getOperationReference(), Collections.<ValueArgument>emptyList()); }