@@ -12,25 +12,19 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
12
12
import org.jetbrains.kotlin.analyzer.common.CommonDependenciesContainer
13
13
import org.jetbrains.kotlin.analyzer.common.CommonPlatformAnalyzerServices
14
14
import org.jetbrains.kotlin.analyzer.common.CommonResolverForModuleFactory
15
- import org.jetbrains.kotlin.backend.common.CommonKLibResolver
16
15
import org.jetbrains.kotlin.backend.common.reportLoadingProblemsIfAny
17
16
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
18
17
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
19
18
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
20
19
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
21
- import org.jetbrains.kotlin.cli.common.messages.getLogger
22
20
import org.jetbrains.kotlin.cli.js.klib.TopDownAnalyzerFacadeForJSIR
23
21
import org.jetbrains.kotlin.cli.js.klib.TopDownAnalyzerFacadeForWasm
24
22
import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider
25
23
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace
26
24
import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
27
25
import org.jetbrains.kotlin.codegen.forTestCompile.TestCompilePaths.KOTLIN_MOCKJDK_RUNTIME_PATH
28
- import org.jetbrains.kotlin.config.CompilerConfiguration
29
- import org.jetbrains.kotlin.config.JVMConfigurationKeys
26
+ import org.jetbrains.kotlin.config.*
30
27
import org.jetbrains.kotlin.config.JVMConfigurationKeys.JVM_TARGET
31
- import org.jetbrains.kotlin.config.JvmTarget
32
- import org.jetbrains.kotlin.config.LanguageFeature
33
- import org.jetbrains.kotlin.config.languageVersionSettings
34
28
import org.jetbrains.kotlin.container.get
35
29
import org.jetbrains.kotlin.context.ModuleContext
36
30
import org.jetbrains.kotlin.context.ProjectContext
@@ -84,6 +78,7 @@ import org.jetbrains.kotlin.test.services.*
84
78
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
85
79
import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator
86
80
import org.jetbrains.kotlin.test.services.configuration.getDependencies
81
+ import org.jetbrains.kotlin.test.services.configuration.nativeEnvironmentConfigurator
87
82
import org.jetbrains.kotlin.test.util.KtTestUtil
88
83
import org.jetbrains.kotlin.utils.addToStdlib.runIf
89
84
import org.jetbrains.kotlin.utils.closure
@@ -310,43 +305,6 @@ class ClassicFrontendFacade(
310
305
}
311
306
}
312
307
313
- // TODO (KT-65837): This function is only used in Kotlin/Native. We shall use createModuleDescriptorsForKlibs() instead.
314
- private fun loadKlib (
315
- factories : KlibMetadataFactories ,
316
- names : List <String >,
317
- configuration : CompilerConfiguration
318
- ): List <ModuleDescriptor > {
319
- val resolvedLibraries = CommonKLibResolver .resolve(
320
- names,
321
- configuration.getLogger(treatWarningsAsErrors = true ),
322
- knownIrProviders = listOf (" kotlin.native.cinterop" ), // FIXME use KonanLibraryProperResolver instead, as in production.
323
- ).getFullResolvedList()
324
-
325
- var builtInsModule: KotlinBuiltIns ? = null
326
- val dependencies = mutableListOf<ModuleDescriptorImpl >()
327
-
328
- return resolvedLibraries.map { resolvedLibrary ->
329
- testServices.libraryProvider.getOrCreateStdlibByPath(resolvedLibrary.library.libraryFile.absolutePath) {
330
- val storageManager = LockBasedStorageManager (" ModulesStructure" )
331
- val isBuiltIns = resolvedLibrary.library.isAnyPlatformStdlib
332
-
333
- val moduleDescriptor = factories.DefaultDeserializedDescriptorFactory .createDescriptorOptionalBuiltIns(
334
- resolvedLibrary.library,
335
- configuration.languageVersionSettings,
336
- storageManager,
337
- builtInsModule,
338
- packageAccessHandler = null ,
339
- lookupTracker = LookupTracker .DO_NOTHING
340
- )
341
- if (isBuiltIns) builtInsModule = moduleDescriptor.builtIns
342
- dependencies + = moduleDescriptor
343
- moduleDescriptor.setDependencies(ArrayList (dependencies))
344
-
345
- Pair (moduleDescriptor, resolvedLibrary.library)
346
- }
347
- }
348
- }
349
-
350
308
private fun performJsModuleResolve (
351
309
module : TestModule ,
352
310
project : Project ,
@@ -436,12 +394,19 @@ class ClassicFrontendFacade(
436
394
val moduleTrace = NoScopeRecordCliBindingTrace (project)
437
395
val runtimeKlibsNames = NativeEnvironmentConfigurator .getRuntimePathsForModule(module, testServices)
438
396
val nativeFactories = KlibMetadataFactories (::KonanBuiltIns , NullFlexibleTypeDeserializer )
439
- val runtimeKlibs = loadKlib(nativeFactories, runtimeKlibsNames, configuration).mapNotNull { it as ? ModuleDescriptorImpl }
440
- val stdlibBuiltInsModule = runtimeKlibs.single { it.name == Name .special(" <stdlib>" ) }.builtIns.builtInsModule
397
+
398
+ val runtimeModuleDescriptors = createModuleDescriptorsForKlibs(
399
+ libraryPaths = runtimeKlibsNames,
400
+ klibPlatformChecker = KlibPlatformChecker .Native (testServices.nativeEnvironmentConfigurator.getNativeTarget(module).name),
401
+ factories = nativeFactories,
402
+ configuration = configuration,
403
+ )
404
+
405
+ val stdlibBuiltInsModule = runtimeModuleDescriptors.single { it.name == Name .special(" <stdlib>" ) }.builtIns.builtInsModule
441
406
442
407
val moduleContext = createModuleContext(
443
408
module, project,
444
- dependencyDescriptors = dependencyDescriptors + runtimeKlibs ,
409
+ dependencyDescriptors = dependencyDescriptors + runtimeModuleDescriptors ,
445
410
friendsDescriptors = friendsDescriptors,
446
411
dependsOnDescriptors = dependsOnDescriptors,
447
412
capabilities = mapOf (
0 commit comments