diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt
index 8fae462..2042096 100644
--- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt
+++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt
@@ -12,9 +12,11 @@
 import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
 import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession
 import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeclarationStatusIsResolved
+import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
 import org.jetbrains.kotlin.fir.FirElementWithResolveState
 import org.jetbrains.kotlin.fir.FirSession
 import org.jetbrains.kotlin.fir.declarations.*
+import org.jetbrains.kotlin.fir.declarations.utils.classId
 import org.jetbrains.kotlin.fir.expressions.FirStatement
 import org.jetbrains.kotlin.fir.resolve.ScopeSession
 import org.jetbrains.kotlin.fir.resolve.transformers.FirStatusResolveTransformer
@@ -24,7 +26,10 @@
 import org.jetbrains.kotlin.fir.types.FirTypeRef
 import org.jetbrains.kotlin.fir.types.coneType
 import org.jetbrains.kotlin.fir.resolve.toSymbol
+import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
 import org.jetbrains.kotlin.fir.visitors.transformSingle
+import org.jetbrains.kotlin.name.StandardClassIds
+import org.jetbrains.kotlin.platform.jvm.isJvm
 import org.jetbrains.kotlin.utils.SmartSet
 
 internal object LLFirStatusLazyResolver : LLFirLazyResolver(FirResolvePhase.STATUS) {
@@ -247,5 +252,24 @@
             resolver.resolveDesignation()
             return true
         }
+
+        override fun additionalSuperTypes(regularClass: FirClass): List<FirTypeRef> {
+            // Stdlib classes may be mapped to Java classes which may have a different supertype set.
+            // E.g., a 'kotlin.collections.Collection' is immutable, while 'java.util.Collection' is mutable (it implements 'MutableIterable').
+            // The logic here is only applicable to the Kotlin project where stdlib comes in sources.
+            val shouldResolveJavaSupertypeCallables = regularClass is FirRegularClass
+                    && regularClass.origin.isLazyResolvable
+                    && regularClass.classId.packageFqName.startsWith(StandardClassIds.BASE_KOTLIN_PACKAGE)
+                    && regularClass.moduleData.platform.isJvm()
+
+            if (!shouldResolveJavaSupertypeCallables) {
+                return emptyList()
+            }
+
+            val fqName = regularClass.classId.asSingleFqName().toUnsafe()
+            val javaClassFqName = JavaToKotlinClassMap.mapKotlinToJava(fqName) ?: return emptyList()
+            val javaSymbol = javaClassFqName.toSymbol(resolveTargetSession) as? FirClassSymbol ?: return emptyList()
+            return javaSymbol.resolvedSuperTypeRefs
+        }
     }
 }
diff --git a/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.kt b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.kt
new file mode 100644
index 0000000..1b034e6
--- /dev/null
+++ b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.kt
@@ -0,0 +1,24 @@
+// SKIP_WHEN_OUT_OF_CONTENT_ROOT
+// ALLOW_KOTLIN_PACKAGE
+package kotlin.collections
+
+interface Iterator<out T> {
+    operator fun next(): T
+    operator fun hasNext(): Boolean
+}
+
+interface MutableIterator<out T> : Iterator<T> {
+    fun remove(): Unit
+}
+
+interface Iterable<out T> {
+    operator fun iterator(): Iterator<T>
+}
+
+interface MutableIterable<out T> : kotlin.collections.Iterable<T> {
+    fun iterator(): MutableIterator<T>
+}
+
+interface Collection<out E> : Iterable<E> {
+    override fun iterato<caret>r(): Iterator<E>
+}
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.txt b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.txt
new file mode 100644
index 0000000..6ede90d
--- /dev/null
+++ b/analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.txt
@@ -0,0 +1,349 @@
+RAW_FIR:
+FILE: [ResolvedTo(RAW_FIR)] mappedTypeResolution.kt
+    public final? [ResolvedTo(RAW_FIR)] interface Iterator<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterator<[ResolvedTo(RAW_FIR)] out T> : Iterator<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Iterable<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterable<[ResolvedTo(RAW_FIR)] out T> : kotlin.collections.Iterable<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun iterator(): MutableIterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Collection<[ResolvedTo(RAW_FIR)] out E> : Iterable<E> {
+        public? open? override [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<E>
+
+    }
+
+IMPORTS:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(RAW_FIR)] interface Iterator<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterator<[ResolvedTo(RAW_FIR)] out T> : Iterator<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Iterable<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterable<[ResolvedTo(RAW_FIR)] out T> : kotlin.collections.Iterable<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun iterator(): MutableIterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Collection<[ResolvedTo(RAW_FIR)] out E> : Iterable<E> {
+        public? open? override [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<E>
+
+    }
+
+COMPILER_REQUIRED_ANNOTATIONS:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(RAW_FIR)] interface Iterator<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterator<[ResolvedTo(RAW_FIR)] out T> : Iterator<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Iterable<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterable<[ResolvedTo(RAW_FIR)] out T> : kotlin.collections.Iterable<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun iterator(): MutableIterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Collection<[ResolvedTo(RAW_FIR)] out E> : Iterable<E> {
+        public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun iterator(): Iterator<E>
+
+    }
+
+COMPANION_GENERATION:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(RAW_FIR)] interface Iterator<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterator<[ResolvedTo(RAW_FIR)] out T> : Iterator<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Iterable<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterable<[ResolvedTo(RAW_FIR)] out T> : kotlin.collections.Iterable<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun iterator(): MutableIterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface Collection<[ResolvedTo(RAW_FIR)] out E> : Iterable<E> {
+        public? open? override [ResolvedTo(COMPANION_GENERATION)] fun iterator(): Iterator<E>
+
+    }
+
+SUPER_TYPES:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(RAW_FIR)] interface Iterator<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterator<[ResolvedTo(RAW_FIR)] out T> : Iterator<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public final? [ResolvedTo(SUPER_TYPES)] interface Iterable<[ResolvedTo(SUPER_TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterable<[ResolvedTo(RAW_FIR)] out T> : kotlin.collections.Iterable<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun iterator(): MutableIterator<T>
+
+    }
+    public final? [ResolvedTo(SUPER_TYPES)] interface Collection<[ResolvedTo(SUPER_TYPES)] out E> : R|kotlin/collections/Iterable<E>| {
+        public? open? override [ResolvedTo(SUPER_TYPES)] fun iterator(): Iterator<E>
+
+    }
+
+TYPES:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(RAW_FIR)] interface Iterator<[ResolvedTo(RAW_FIR)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterator<[ResolvedTo(RAW_FIR)] out T> : Iterator<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public final? [ResolvedTo(SUPER_TYPES)] interface Iterable<[ResolvedTo(SUPER_TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun iterator(): Iterator<T>
+
+    }
+    public final? [ResolvedTo(RAW_FIR)] interface MutableIterable<[ResolvedTo(RAW_FIR)] out T> : kotlin.collections.Iterable<T> {
+        public? final? [ResolvedTo(RAW_FIR)] fun iterator(): MutableIterator<T>
+
+    }
+    public final? [ResolvedTo(TYPES)] interface Collection<[ResolvedTo(TYPES)] out E> : R|kotlin/collections/Iterable<E>| {
+        public? open? override [ResolvedTo(TYPES)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+STATUS:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(TYPES)] interface Iterator<[ResolvedTo(TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(TYPES)] interface MutableIterator<[ResolvedTo(TYPES)] out T> : R|kotlin/collections/Iterator<T>| {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Iterable<[ResolvedTo(STATUS)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface MutableIterable<[ResolvedTo(STATUS)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Collection<[ResolvedTo(STATUS)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+EXPECT_ACTUAL_MATCHING:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(TYPES)] interface Iterator<[ResolvedTo(TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(TYPES)] interface MutableIterator<[ResolvedTo(TYPES)] out T> : R|kotlin/collections/Iterator<T>| {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Iterable<[ResolvedTo(STATUS)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface MutableIterable<[ResolvedTo(STATUS)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Collection<[ResolvedTo(STATUS)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+CONTRACTS:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(TYPES)] interface Iterator<[ResolvedTo(TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(TYPES)] interface MutableIterator<[ResolvedTo(TYPES)] out T> : R|kotlin/collections/Iterator<T>| {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Iterable<[ResolvedTo(STATUS)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface MutableIterable<[ResolvedTo(STATUS)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Collection<[ResolvedTo(STATUS)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(CONTRACTS)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+IMPLICIT_TYPES_BODY_RESOLVE:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(TYPES)] interface Iterator<[ResolvedTo(TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(TYPES)] interface MutableIterator<[ResolvedTo(TYPES)] out T> : R|kotlin/collections/Iterator<T>| {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Iterable<[ResolvedTo(STATUS)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface MutableIterable<[ResolvedTo(STATUS)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Collection<[ResolvedTo(STATUS)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+CONSTANT_EVALUATION:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(TYPES)] interface Iterator<[ResolvedTo(TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(TYPES)] interface MutableIterator<[ResolvedTo(TYPES)] out T> : R|kotlin/collections/Iterator<T>| {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Iterable<[ResolvedTo(STATUS)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface MutableIterable<[ResolvedTo(STATUS)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Collection<[ResolvedTo(STATUS)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(CONSTANT_EVALUATION)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+ANNOTATION_ARGUMENTS:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(TYPES)] interface Iterator<[ResolvedTo(TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(TYPES)] interface MutableIterator<[ResolvedTo(TYPES)] out T> : R|kotlin/collections/Iterator<T>| {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Iterable<[ResolvedTo(STATUS)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface MutableIterable<[ResolvedTo(STATUS)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Collection<[ResolvedTo(STATUS)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(ANNOTATION_ARGUMENTS)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+BODY_RESOLVE:
+FILE: [ResolvedTo(IMPORTS)] mappedTypeResolution.kt
+    public final? [ResolvedTo(TYPES)] interface Iterator<[ResolvedTo(TYPES)] out T> : R|kotlin/Any| {
+        public? final? operator [ResolvedTo(RAW_FIR)] fun next(): T
+
+        public? final? operator [ResolvedTo(RAW_FIR)] fun hasNext(): Boolean
+
+    }
+    public final? [ResolvedTo(TYPES)] interface MutableIterator<[ResolvedTo(TYPES)] out T> : R|kotlin/collections/Iterator<T>| {
+        public? final? [ResolvedTo(RAW_FIR)] fun remove(): Unit
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Iterable<[ResolvedTo(STATUS)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface MutableIterable<[ResolvedTo(STATUS)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(STATUS)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(STATUS)] interface Collection<[ResolvedTo(STATUS)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(BODY_RESOLVE)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
+
+FILE RAW TO BODY:
+FILE: [ResolvedTo(BODY_RESOLVE)] mappedTypeResolution.kt
+    public abstract [ResolvedTo(BODY_RESOLVE)] interface Iterator<[ResolvedTo(BODY_RESOLVE)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(BODY_RESOLVE)] fun next(): R|T|
+
+        public abstract operator [ResolvedTo(BODY_RESOLVE)] fun hasNext(): R|java/lang/Boolean|
+
+    }
+    public abstract [ResolvedTo(BODY_RESOLVE)] interface MutableIterator<[ResolvedTo(BODY_RESOLVE)] out T> : R|kotlin/collections/Iterator<T>| {
+        public abstract override [ResolvedTo(BODY_RESOLVE)] fun remove(): <ERROR TYPE REF: Symbol not found for Unit>
+
+    }
+    public abstract [ResolvedTo(BODY_RESOLVE)] interface Iterable<[ResolvedTo(BODY_RESOLVE)] out T> : R|kotlin/Any| {
+        public abstract operator [ResolvedTo(BODY_RESOLVE)] fun iterator(): R|kotlin/collections/Iterator<T>|
+
+    }
+    public abstract [ResolvedTo(BODY_RESOLVE)] interface MutableIterable<[ResolvedTo(BODY_RESOLVE)] out T> : R|kotlin/collections/Iterable<T>| {
+        public abstract override operator [ResolvedTo(BODY_RESOLVE)] fun iterator(): R|kotlin/collections/MutableIterator<T>|
+
+    }
+    public abstract [ResolvedTo(BODY_RESOLVE)] interface Collection<[ResolvedTo(BODY_RESOLVE)] out E> : R|kotlin/collections/Iterable<E>| {
+        public abstract override operator [ResolvedTo(BODY_RESOLVE)] fun iterator(): R|kotlin/collections/Iterator<E>|
+
+    }
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java
index 14eaf77..90099ba 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java
@@ -1326,6 +1326,12 @@
     public void testIntegerLiteralCall() {
       runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerLiteralCall.kt");
     }
+
+    @Test
+    @TestMetadata("mappedTypeResolution.kt")
+    public void testMappedTypeResolution() {
+      runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.kt");
+    }
   }
 
   @Nested
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java
index 797ae6e..e1082df 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java
@@ -1326,6 +1326,12 @@
     public void testIntegerLiteralCall() {
       runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/integerLiteralCall.kt");
     }
+
+    @Test
+    @TestMetadata("mappedTypeResolution.kt")
+    public void testMappedTypeResolution() {
+      runTest("analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.kt");
+    }
   }
 
   @Nested
diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt
index 5236203..7dabf96 100644
--- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt
+++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt
@@ -327,13 +327,15 @@
     }
 
     open fun forceResolveStatusesOfSupertypes(regularClass: FirClass) {
-        for (superTypeRef in regularClass.superTypeRefs) {
+        for (superTypeRef in regularClass.superTypeRefs + additionalSuperTypes(regularClass)) {
             for (classifierSymbol in superTypeToSymbols(superTypeRef)) {
                 forceResolveStatusOfCorrespondingClass(classifierSymbol)
             }
         }
     }
 
+    open fun additionalSuperTypes(regularClass: FirClass): List<FirTypeRef> = emptyList()
+
     /**
      * @return symbols which should be resolved to [FirResolvePhase.STATUS] phase
      */
