@Override
  public @Nullable PsiType getType() {
    if (!PsiUtil.getLanguageLevel(this).equals(LanguageLevel.JDK_21_PREVIEW)) {
      JavaResolveResult result = resolveMethodGenerics();
      PsiMethod method = (PsiMethod)result.getElement();
      if (method != null) {
        return result.getSubstitutor().substitute(method.getReturnType());
      }
    }
    final PsiExpression processor = getProcessor();
    if (processor == null) return null;
    PsiType type = processor.getType();
    if (type == null) return null;
    for (PsiClassType classType : PsiTypesUtil.getClassTypeComponents(type)) {
      PsiType substituted = PsiUtil.substituteTypeParameter(classType, CommonClassNames.JAVA_LANG_STRING_TEMPLATE_PROCESSOR, 0, false);
      if (substituted != null) {
        return PsiUtil.captureToplevelWildcards(substituted, this);
      }
    }
    return null;
  }
@Override
  public @Nullable PsiType getType()