Move reified type parameter checker to additional checkers to able turn it off by demand

This commit is contained in:
Mikhail Zarechenskiy
2016-11-30 15:53:08 +03:00
parent dc57d69085
commit 240d82d167
4 changed files with 7 additions and 4 deletions
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.container.useImpl
import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
import org.jetbrains.kotlin.resolve.PlatformConfigurator import org.jetbrains.kotlin.resolve.PlatformConfigurator
import org.jetbrains.kotlin.resolve.calls.checkers.ReifiedTypeParameterSubstitutionChecker
import org.jetbrains.kotlin.resolve.checkers.PlatformImplDeclarationChecker import org.jetbrains.kotlin.resolve.checkers.PlatformImplDeclarationChecker
import org.jetbrains.kotlin.resolve.jvm.JvmOverloadFilter import org.jetbrains.kotlin.resolve.jvm.JvmOverloadFilter
import org.jetbrains.kotlin.resolve.jvm.JvmTypeSpecificityComparator import org.jetbrains.kotlin.resolve.jvm.JvmTypeSpecificityComparator
@@ -56,7 +57,8 @@ object JvmPlatformConfigurator : PlatformConfigurator(
UnsupportedSyntheticCallableReferenceChecker(), UnsupportedSyntheticCallableReferenceChecker(),
SuperCallWithDefaultArgumentsChecker(), SuperCallWithDefaultArgumentsChecker(),
MissingDependencyClassChecker(), MissingDependencyClassChecker(),
ProtectedSyntheticExtensionCallChecker ProtectedSyntheticExtensionCallChecker,
ReifiedTypeParameterSubstitutionChecker()
), ),
additionalTypeCheckers = listOf( additionalTypeCheckers = listOf(
@@ -70,7 +70,7 @@ private val DEFAULT_DECLARATION_CHECKERS = listOf(
) )
private val DEFAULT_CALL_CHECKERS = listOf( private val DEFAULT_CALL_CHECKERS = listOf(
CapturingInClosureChecker(), InlineCheckerWrapper(), ReifiedTypeParameterSubstitutionChecker(), SafeCallChecker(), CapturingInClosureChecker(), InlineCheckerWrapper(), SafeCallChecker(),
DeprecatedCallChecker, CallReturnsArrayOfNothingChecker(), InfixCallChecker(), OperatorCallChecker(), DeprecatedCallChecker, CallReturnsArrayOfNothingChecker(), InfixCallChecker(), OperatorCallChecker(),
ConstructorHeaderCallChecker, ProtectedConstructorCallChecker, ApiVersionCallChecker, ConstructorHeaderCallChecker, ProtectedConstructorCallChecker, ApiVersionCallChecker,
CoroutineSuspendCallChecker, BuilderFunctionsCallChecker, DslScopeViolationCallChecker CoroutineSuspendCallChecker, BuilderFunctionsCallChecker, DslScopeViolationCallChecker
@@ -5,7 +5,7 @@ inline fun<reified T> foo(block: () -> T): String = block().toString()
inline fun <reified T: Any> javaClass(): Class<T> = T::class.java inline fun <reified T: Any> javaClass(): Class<T> = T::class.java
fun box() { fun box() {
val a = <!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION, UNSUPPORTED!>arrayOf<!>(null!!) val a = <!UNSUPPORTED, REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>arrayOf<!>(null!!)
val b = <!UNSUPPORTED!>Array<!><<!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>Nothing?<!>>(5) { null!! } val b = <!UNSUPPORTED!>Array<!><<!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>Nothing?<!>>(5) { null!! }
val c = <!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>foo<!>() { null!! } val c = <!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>foo<!>() { null!! }
val d = foo<Any> { null!! } val d = foo<Any> { null!! }
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
import org.jetbrains.kotlin.resolve.IdentifierChecker import org.jetbrains.kotlin.resolve.IdentifierChecker
import org.jetbrains.kotlin.resolve.OverloadFilter import org.jetbrains.kotlin.resolve.OverloadFilter
import org.jetbrains.kotlin.resolve.PlatformConfigurator import org.jetbrains.kotlin.resolve.PlatformConfigurator
import org.jetbrains.kotlin.resolve.calls.checkers.ReifiedTypeParameterSubstitutionChecker
import org.jetbrains.kotlin.resolve.checkers.PlatformImplDeclarationChecker import org.jetbrains.kotlin.resolve.checkers.PlatformImplDeclarationChecker
import org.jetbrains.kotlin.resolve.scopes.SyntheticConstructorsProvider import org.jetbrains.kotlin.resolve.scopes.SyntheticConstructorsProvider
import org.jetbrains.kotlin.resolve.scopes.SyntheticScopes import org.jetbrains.kotlin.resolve.scopes.SyntheticScopes
@@ -36,7 +37,7 @@ object JsPlatformConfigurator : PlatformConfigurator(
JsNameChecker, JsNameChecker,
PlatformImplDeclarationChecker() PlatformImplDeclarationChecker()
), ),
additionalCallCheckers = listOf(), additionalCallCheckers = listOf(ReifiedTypeParameterSubstitutionChecker()),
additionalTypeCheckers = listOf(), additionalTypeCheckers = listOf(),
additionalClassifierUsageCheckers = listOf(), additionalClassifierUsageCheckers = listOf(),
additionalAnnotationCheckers = listOf(), additionalAnnotationCheckers = listOf(),