[Expect/Actual] Remove PlatformExpectedAnnotator

This commit is contained in:
Dmitry Savvinov
2019-04-10 10:48:08 +03:00
parent 29beed9b21
commit 174ef56991
6 changed files with 83 additions and 140 deletions
@@ -27,10 +27,12 @@ import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.platform.TargetPlatformVersion
import org.jetbrains.kotlin.platform.isCommon
import org.jetbrains.kotlin.resolve.*
import org.jetbrains.kotlin.resolve.calls.components.ClassicTypeSystemContextForCS
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactoryImpl
import org.jetbrains.kotlin.resolve.calls.tower.KotlinResolutionStatelessCallbacksImpl
import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker
import org.jetbrains.kotlin.resolve.checkers.ExperimentalUsageChecker
import org.jetbrains.kotlin.resolve.lazy.*
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory
@@ -140,6 +142,12 @@ fun createContainerForLazyBodyResolve(
useImpl<LazyTopDownAnalyzer>()
useImpl<BasicAbsentDescriptorHandler>()
useInstance(moduleStructureOracle)
// All containers except common inject ExpectedActualDeclarationChecker, so for common we do that
// explicitly.
// Note that it is not possible to move this code to [CommonPlatformConfigurator], because during
// compilation of common-module to metadata we should skip those checks
if (platform.isCommon()) useImpl<ExpectedActualDeclarationChecker>()
}
fun createContainerForLazyLocalClassifierAnalyzer(