MethodSignature (@NotNull PsiSubstitutor substitutor) { if (substitutor == PsiSubstitutor.EMPTY) { return CachedValuesManager.getCachedValue(this, () -> { MethodSignature signature = MethodSignatureBackedByPsiMethod.create(this, PsiSubstitutor.EMPTY); return CachedValueProvider.Result.create(signature, PsiModificationTracker.MODIFICATION_COUNT); }); } return MethodSignatureBackedByPsiMethod.create(this, substitutor); }