PsiType () { if (isConstructor()) return null; PsiMethodStub stub = getStub(); if (stub != null) { PsiType type = dereference(myCachedType); if (type == null) { type = JavaSharedImplUtil.createTypeFromStub(this, stub.getReturnTypeText()); myCachedType = new SoftReference<>(type); } return type; } myCachedType = null; PsiTypeElement typeElement = getReturnTypeElement(); return typeElement != null ? JavaSharedImplUtil.getType(typeElement, getParameterList()) : null; }