~ Fix
diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirScopeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirScopeProvider.kt
index ea20f28..67ec4b4 100644
--- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirScopeProvider.kt
+++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KaFirScopeProvider.kt
@@ -165,7 +165,7 @@
             firJavaClass,
             useSiteSession,
             scopeSession,
-            memberRequiredPhase = FirResolvePhase.STATUS,
+            memberRequiredPhase = null,
         )
 
         fun getStaticScope() = JavaScopeProvider.getStaticScope(firJavaClass, useSiteSession, scopeSession)
diff --git a/analysis/analysis-api-fir/testData/surface/javaDeclaredMemberScopeResolution.txt b/analysis/analysis-api-fir/testData/surface/javaDeclaredMemberScopeResolution.txt
index 6a2b263..4fc0cd9 100644
--- a/analysis/analysis-api-fir/testData/surface/javaDeclaredMemberScopeResolution.txt
+++ b/analysis/analysis-api-fir/testData/surface/javaDeclaredMemberScopeResolution.txt
@@ -1,14 +1,14 @@
 FILE: [ResolvedTo(IMPORTS)] main.kt
-    public open [ResolvedTo(STATUS)] class Base : R|kotlin/Any| {
-        public [ResolvedTo(STATUS)] [ContainingClassKey=Base] constructor(): R|Base| {
+    public open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| {
+        public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|Base| {
             LAZY_super<R|kotlin/Any|>
         }
 
-        public open [ResolvedTo(STATUS)] val baseProperty: R|kotlin/String| = LAZY_EXPRESSION
-            public [ResolvedTo(STATUS)] [ContainingClassKey=Base] get(): R|kotlin/String|
+        public? open [ResolvedTo(RAW_FIR)] val baseProperty: String = LAZY_EXPRESSION
+            public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] get(): String
 
-        public final [ResolvedTo(STATUS)] fun baseFunction(): R|kotlin/String| { LAZY_BLOCK }
+        public? final? [ResolvedTo(RAW_FIR)] fun baseFunction(): String { LAZY_BLOCK }
 
-        private final [ResolvedTo(STATUS)] fun privateBaseFunction(): R|kotlin/String| { LAZY_BLOCK }
+        private final? [ResolvedTo(RAW_FIR)] fun privateBaseFunction(): String { LAZY_BLOCK }
 
     }
diff --git a/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt b/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt
index c0f64a2..f7a2e0c 100644
--- a/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt
+++ b/compiler/fir/fir-jvm/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt
@@ -256,7 +256,6 @@
     private fun FirPropertySymbol.findSetterOverride(
         scope: FirScope,
     ): FirNamedFunctionSymbol? {
-        val propertyType = fir.returnTypeRef.coneTypeSafe<ConeKotlinType>() ?: return null
         val receiverCount = (if (receiverParameterSymbol != null) 1 else 0) + contextParameterSymbols.size
 
         return scope.getFunctions(Name.identifier(JvmAbi.setterName(fir.name.asString()))).firstNotNullOfOrNull factory@{ candidateSymbol ->
@@ -275,7 +274,7 @@
 
             candidateSymbol.takeIf {
                 candidate.isAcceptableAsAccessorOverride() && AbstractTypeChecker.equalTypes(
-                    session.typeContext, parameterType, propertyType
+                    session.typeContext, parameterType, resolvedReturnType
                 )
             }
         }
diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt
index 2412e3a..769457b 100644
--- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt
+++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt
@@ -24,15 +24,14 @@
 import org.jetbrains.kotlin.fir.scopes.deferredCallableCopyReturnType
 import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
 import org.jetbrains.kotlin.fir.symbols.impl.*
+import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
 import org.jetbrains.kotlin.fir.types.*
 import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
 import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
 import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImplWithoutSource
-import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry
 import org.jetbrains.kotlin.name.CallableId
 import org.jetbrains.kotlin.name.ClassId
 import org.jetbrains.kotlin.utils.addToStdlib.runIf
-import org.jetbrains.kotlin.utils.exceptions.checkWithAttachment
 
 object FirFakeOverrideGenerator {
     fun createSubstitutionOverrideFunction(
@@ -292,7 +291,7 @@
         origin: FirDeclarationOrigin,
         copyDefaultValues: Boolean = false,
     ) {
-        checkStatusIsResolved(baseFunction)
+        ensureStatusIsResolved(baseFunction)
         annotations += baseFunction.annotations
 
         @Suppress("NAME_SHADOWING")
@@ -724,7 +723,7 @@
         deferredReturnTypeCalculation: DeferredCallableCopyReturnType?,
         updateReceiver: Boolean = true,
     ) {
-        checkStatusIsResolved(baseVariable)
+        ensureStatusIsResolved(baseVariable)
         annotations += baseVariable.annotations
 
         @Suppress("NAME_SHADOWING")
@@ -937,18 +936,8 @@
         object Nothing : Maybe<kotlin.Nothing>()
     }
 
-    private fun checkStatusIsResolved(member: FirCallableDeclaration) {
-        checkWithAttachment(
-            member.status is FirResolvedDeclarationStatus,
-            message = {
-                "Status should be resolved for a declaration to create its fake override, " +
-                        "otherwise the status of the fake override will never be resolved." +
-                        "The status was unresolved for ${member::class.java.simpleName}"
-            }
-        ) {
-            withFirEntry("declaration", member)
-            withEntry("declarationStatus", member.status) { it.toString() }
-        }
+    private fun ensureStatusIsResolved(member: FirCallableDeclaration) {
+        member.lazyResolveToPhase(FirResolvePhase.STATUS)
     }
 
     /**