PsiSubstitutor (PsiElement member, @Nullable DfaVariableValue qualifier) { if (member instanceof PsiMember && qualifier != null) { PsiClass fieldClass = ((PsiMember)member).getContainingClass(); PsiVarDescriptor qualifierDescriptor = ObjectUtils.tryCast(qualifier.getDescriptor(), PsiVarDescriptor.class); PsiClassType classType = qualifierDescriptor == null ? null : ObjectUtils.tryCast(qualifierDescriptor.getType(qualifier.getQualifier()), PsiClassType.class); if (classType != null && InheritanceUtil.isInheritorOrSelf(classType.resolve(), fieldClass, true)) { return TypeConversionUtil.getSuperClassSubstitutor(fieldClass, classType); } } return PsiSubstitutor.EMPTY; }