private void checkBinary(@NotNull PsiExpression l, @NotNull PsiExpression r) {
        if (l instanceof PsiReference ref && ref.resolve() instanceof PsiModifierListOwner owner) {
          checkExpression(r, owner, PsiUtil.getTypeByPsiElement(owner), holder);
        }
        else if (l instanceof PsiMethodCallExpression call) {
          PsiMethod method = call.resolveMethod();
          if (method != null) {
            checkExpression(r, method, method.getReturnType(), holder);
            checkExpression(r, holder, SPECIAL_CASES.mapFirst(call));
          }
        }
      }
private void checkBinary(@NotNull PsiExpression l, @NotNull PsiExpression r)