@Override
  public @Nullable Result calculateResult(Expression @NotNull [] params, ExpressionContext context) {
    if (params.length == 1) {
      Result result = params[0].calculateResult(context);
      if (result != null) {
        PsiExpression expression = MacroUtil.resultToPsiExpression(result, context);
        if (expression != null) {
          PsiType type = expression.getType();
          if (type != null) {
            return new PsiTypeResult(type, context.getProject());
          }
        }
      }
    }

    return null;
  }
@Override
  public @Nullable Result calculateResult(Expression @NotNull [] params, ExpressionContext context)