List<PsiType[]> (@NotNull PsiMethod method, @NotNull PsiSubstitutor substitutor, String @NotNull [] options) { PsiParameter[] parameters = method.getParameterList().getParameters(); if (myParam < parameters.length) { PsiParameter parameter = parameters[myParam]; PsiType originalType = parameter.getType(); PsiType substituted = substitutor.substitute(originalType); if (myGeneric == -1) { return produceResult(substituted); } else { if (substituted instanceof PsiClassType) { PsiType[] typeParameters = ((PsiClassType)substituted).getParameters(); if (myGeneric < typeParameters.length) { return produceResult(typeParameters[myGeneric]); } //if (substituted.equalsToText(CommonClassNames.JAVA_LANG_STRING)) { // return produceResult(TypesUtil.createType(CommonClassNames.JAVA_LANG_CHARACTER, method)); //} } } } return ContainerUtil.emptyList(); }