TypeConversionDescriptor findDirectConversion(@NotNull PsiElement context,
                                                  @NotNull PsiType to,
                                                  @NotNull PsiType from) {
      final PsiClass toTypeClass = PsiUtil.resolveClassInType(to);
      LOG.assertTrue(toTypeClass != null);

      final PsiElement parent = context.getParent();
      if (parent instanceof PsiAssignmentExpression expression) {
        final IElementType tokenType = expression.getOperationTokenType();
        if (tokenType == JavaTokenType.EQ) {
          return findSimpleAssignmentConversion(expression);
        }
        final String sign = expression.getOperationSign().getText();
        final String binarySign = sign.substring(0, sign.length() - 1);
        return findCompoundAssignmentConversion(from, expression, sign, binarySign);
      }
      else if (parent instanceof PsiPostfixExpression expression) {
        final TypeConversionDescriptor conversion = getUpdateConversion(expression, expression.getOperationSign(), true);
        if (conversion != null) return conversion;
      }
      else if (parent instanceof PsiPrefixExpression expression) {
        final TypeConversionDescriptor conversion = getUpdateConversion(expression, expression.getOperationSign(), false);
        if (conversion != null) return conversion;
      }
      else if (context instanceof PsiReferenceExpression) {
        final PsiExpression qualifierExpression = ((PsiReferenceExpression)context).getQualifierExpression();
        final PsiExpression expression = context.getParent() instanceof PsiMethodCallExpression && qualifierExpression != null
                                         ? qualifierExpression
                                         : (PsiExpression)context;
        return getReadConversion(expression);
      }

      return null;
    }
TypeConversionDescriptor findDirectConversion(@NotNull PsiElement context,
                                                  @NotNull PsiType to,
                                                  @NotNull PsiType from)