Sanitize declaration return types

On JVM, strip @EnhancedNullability annotation from inferred types for
functions, properties, and local variables, so that these annotations
do not "escape" from Kotlin declarations.
This commit is contained in:
Dmitry Petrov
2017-10-24 13:08:29 +03:00
parent 2b924f44d8
commit 57602c420d
13 changed files with 128 additions and 24 deletions
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.js.naming.NameSuggestion
import org.jetbrains.kotlin.js.resolve.diagnostics.*
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
import org.jetbrains.kotlin.resolve.DeclarationReturnTypeSanitizer
import org.jetbrains.kotlin.resolve.OverloadFilter
import org.jetbrains.kotlin.resolve.OverridesBackwardCompatibilityHelper
import org.jetbrains.kotlin.resolve.PlatformConfigurator
@@ -51,10 +52,11 @@ object JsPlatformConfigurator : PlatformConfigurator(
additionalClassifierUsageCheckers = listOf(),
additionalAnnotationCheckers = listOf(),
identifierChecker = JsIdentifierChecker,
overloadFilter = OverloadFilter.DEFAULT,
overloadFilter = OverloadFilter.Default,
platformToKotlinClassMap = PlatformToKotlinClassMap.EMPTY,
delegationFilter = DelegationFilter.DEFAULT,
overridesBackwardCompatibilityHelper = OverridesBackwardCompatibilityHelper.DEFAULT
delegationFilter = DelegationFilter.Default,
overridesBackwardCompatibilityHelper = OverridesBackwardCompatibilityHelper.Default,
declarationReturnTypeSanitizer = DeclarationReturnTypeSanitizer.Default
) {
override fun configureModuleComponents(container: StorageComponentContainer) {
container.useInstance(NameSuggestion())