K2/Native: fix builtIns predicate in fir2ir phase
Old implementation expected that builtIns should be based on a library with no dependencies, usually stdlib. But that doesn't work properly in some cases, e.g. when producing a metadata klib (-Xmetadata-klib) for HMPP. In that case, some of the metadata dependencies can have no depends= in the manifest, leading to the compiler choosing such a module instead of stdlib. This commit makes it look for a library that is explicitly stdlib instead. ^KT-56071
This commit is contained in:
committed by
Space Team
parent
bd18fd40ea
commit
f6fa78b653
+2
-1
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.deserialization.PlatformDependentTypeTransformer
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.descriptors.konan.isNativeStdlib
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.backend.*
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.Fir2IrJvmSpecialAnnotationSymbolProvider
|
||||
@@ -62,7 +63,7 @@ internal fun PhaseContext.fir2Ir(
|
||||
dependencies += moduleDescriptor
|
||||
moduleDescriptor.setDependencies(ArrayList(dependencies))
|
||||
|
||||
val isBuiltIns = resolvedLibrary.library.unresolvedDependencies.isEmpty()
|
||||
val isBuiltIns = moduleDescriptor.isNativeStdlib()
|
||||
if (isBuiltIns) builtInsModule = moduleDescriptor.builtIns
|
||||
|
||||
moduleDescriptor
|
||||
|
||||
Reference in New Issue
Block a user