Remove NonStrictOnlyInputTypesChecks LF and introduce opposite – StrictOnlyInputTypesChecks, set default as strict

This commit is contained in:
Victor Petukhov
2021-03-26 15:24:34 +03:00
parent b60056f11e
commit cc1cb463b2
45 changed files with 36 additions and 51 deletions
@@ -478,7 +478,10 @@ class DiagnosticReporterByTrackingStrategy(
OnlyInputTypesDiagnostic::class.java -> { OnlyInputTypesDiagnostic::class.java -> {
val typeVariable = (error as OnlyInputTypesDiagnostic).typeVariable as? TypeVariableFromCallableDescriptor ?: return val typeVariable = (error as OnlyInputTypesDiagnostic).typeVariable as? TypeVariableFromCallableDescriptor ?: return
psiKotlinCall.psiCall.calleeExpression?.let { psiKotlinCall.psiCall.calleeExpression?.let {
trace.report(TYPE_INFERENCE_ONLY_INPUT_TYPES.on(it, typeVariable.originalTypeParameter)) val factory = if (context.languageVersionSettings.supportsFeature(LanguageFeature.StrictOnlyInputTypesChecks))
TYPE_INFERENCE_ONLY_INPUT_TYPES
else TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING
trace.report(factory.on(it, typeVariable.originalTypeParameter))
} }
} }
} }
@@ -1411,7 +1411,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
boolean areAllCandidatesFailedWithOnlyInputTypesError = allCandidates.stream().allMatch((resolvedCall) -> boolean areAllCandidatesFailedWithOnlyInputTypesError = allCandidates.stream().allMatch((resolvedCall) ->
resolvedCall instanceof NewAbstractResolvedCall<?> && ((NewAbstractResolvedCall<?>) resolvedCall).containsOnlyOnlyInputTypesErrors() resolvedCall instanceof NewAbstractResolvedCall<?> && ((NewAbstractResolvedCall<?>) resolvedCall).containsOnlyOnlyInputTypesErrors()
); );
boolean isNonStrictOnlyInputTypesCheckEnabled = context.languageVersionSettings.supportsFeature(LanguageFeature.NonStrictOnlyInputTypesChecks); boolean isNonStrictOnlyInputTypesCheckEnabled = !context.languageVersionSettings.supportsFeature(LanguageFeature.StrictOnlyInputTypesChecks);
return areAllCandidatesFailedWithOnlyInputTypesError && isNonStrictOnlyInputTypesCheckEnabled; return areAllCandidatesFailedWithOnlyInputTypesError && isNonStrictOnlyInputTypesCheckEnabled;
} }
@@ -1,5 +1,6 @@
// WITH_RUNTIME // WITH_RUNTIME
// DONT_TARGET_EXACT_BACKEND: WASM // DONT_TARGET_EXACT_BACKEND: WASM
// !LANGUAGE: -StrictOnlyInputTypesChecks
import kotlin.experimental.ExperimentalTypeInference import kotlin.experimental.ExperimentalTypeInference
@@ -1,5 +1,6 @@
// WITH_RUNTIME // WITH_RUNTIME
// DONT_TARGET_EXACT_BACKEND: WASM // DONT_TARGET_EXACT_BACKEND: WASM
// !LANGUAGE: -StrictOnlyInputTypesChecks
import kotlin.experimental.ExperimentalTypeInference import kotlin.experimental.ExperimentalTypeInference
@@ -1,5 +1,6 @@
// WITH_RUNTIME // WITH_RUNTIME
// DONT_TARGET_EXACT_BACKEND: WASM // DONT_TARGET_EXACT_BACKEND: WASM
// !LANGUAGE: -StrictOnlyInputTypesChecks
import kotlin.experimental.ExperimentalTypeInference import kotlin.experimental.ExperimentalTypeInference
@@ -1,6 +1,7 @@
// WITH_RUNTIME // WITH_RUNTIME
// SKIP_TXT // SKIP_TXT
// DONT_TARGET_EXACT_BACKEND: WASM // DONT_TARGET_EXACT_BACKEND: WASM
// !LANGUAGE: -StrictOnlyInputTypesChecks
import kotlin.experimental.ExperimentalTypeInference import kotlin.experimental.ExperimentalTypeInference
@@ -1,5 +1,6 @@
// DONT_TARGET_EXACT_BACKEND: WASM // DONT_TARGET_EXACT_BACKEND: WASM
// WITH_RUNTIME // WITH_RUNTIME
// !LANGUAGE: -StrictOnlyInputTypesChecks
fun foo(fn: () -> Boolean) {} fun foo(fn: () -> Boolean) {}
@@ -1,5 +1,6 @@
// DONT_TARGET_EXACT_BACKEND: WASM // DONT_TARGET_EXACT_BACKEND: WASM
// WITH_RUNTIME // WITH_RUNTIME
// !LANGUAGE: -StrictOnlyInputTypesChecks
fun box(): String { fun box(): String {
val set = setOf<Int>(1, 2, 3, 4, 5) val set = setOf<Int>(1, 2, 3, 4, 5)
@@ -444,8 +444,8 @@ fun poll8(): Flow<String> {
fun poll81(): Flow<String> { fun poll81(): Flow<String> {
return flow { return flow {
val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(::foo2) val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(::foo2)
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>() <!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
} }
} }
@@ -458,8 +458,8 @@ fun poll82(): Flow<String> {
fun poll83(): Flow<String> { fun poll83(): Flow<String> {
return flow { return flow {
val inv = ::bar4 <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(::foo4) val inv = ::bar4 <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(::foo4)
inv <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
} }
} }
@@ -486,7 +486,7 @@ fun poll86(): Flow<String> {
fun poll87(): Flow<String> { fun poll87(): Flow<String> {
return flow { return flow {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>Foo7<!><!> <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(foo7()) val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>Foo7<!><!> <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(foo7())
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
} }
} }
@@ -57,15 +57,15 @@ fun poll75(): Flow<String> {
fun poll81(): Flow<String> { fun poll81(): Flow<String> {
return flow { return flow {
val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(::foo2) val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(::foo2)
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>() <!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
} }
} }
fun poll83(): Flow<String> { fun poll83(): Flow<String> {
return flow { return flow {
val inv = ::bar4 <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(::foo4) val inv = ::bar4 <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(::foo4)
inv <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
} }
} }
@@ -22,14 +22,14 @@ class Flow<out R>(private val block: suspend FlowCollector<R>.() -> Unit)
fun poll81(): Flow<String> { fun poll81(): Flow<String> {
return flow { return flow {
val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(::foo2) val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(::foo2)
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>() <!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
} }
} }
fun poll83(): Flow<String> { fun poll83(): Flow<String> {
return flow { return flow {
val inv = ::bar4 <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(::foo4) val inv = ::bar4 <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(::foo4)
inv <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
} }
} }
@@ -274,8 +274,8 @@ fun poll8() {
} }
fun poll81() { fun poll81() {
val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(::foo2) val inv = ::bar2 <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(::foo2)
<!DEBUG_INFO_MISSING_UNRESOLVED, FUNCTION_EXPECTED!>inv<!>() <!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
} }
fun poll82() { fun poll82() {
@@ -304,7 +304,7 @@ fun poll86() {
} }
fun poll87() { fun poll87() {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::Foo7<!> <!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>in<!> setOf(foo7()) val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::Foo7<!> <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(foo7())
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
} }
@@ -1,4 +1,3 @@
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// See also KT-10386 // See also KT-10386
interface A interface A
@@ -1,4 +1,3 @@
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// See also KT-10386 // See also KT-10386
interface A interface A
@@ -1,5 +1,4 @@
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
import java.util.* import java.util.*
fun foo() { fun foo() {
@@ -1,5 +1,4 @@
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
import java.util.* import java.util.*
fun foo() { fun foo() {
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -INVISIBLE_MEMBER -INVISIBLE_REFERENCE -UNUSED_PARAMETER // !DIAGNOSTICS: -INVISIBLE_MEMBER -INVISIBLE_REFERENCE -UNUSED_PARAMETER
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
interface Parent interface Parent
object ChildA : Parent object ChildA : Parent
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -INVISIBLE_MEMBER -INVISIBLE_REFERENCE -UNUSED_PARAMETER // !DIAGNOSTICS: -INVISIBLE_MEMBER -INVISIBLE_REFERENCE -UNUSED_PARAMETER
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
interface Parent interface Parent
object ChildA : Parent object ChildA : Parent
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
open class Base() open class Base()
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
open class Base() open class Base()
@@ -1,6 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_VARIABLE
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// ISSUE: KT-29307 // ISSUE: KT-29307
fun test_1(map: Map<String, String>) { fun test_1(map: Map<String, String>) {
@@ -1,6 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_VARIABLE
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// ISSUE: KT-29307 // ISSUE: KT-29307
fun test_1(map: Map<String, String>) { fun test_1(map: Map<String, String>) {
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,6 +1,5 @@
//!DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE //!DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
<!CONFLICTING_OVERLOADS!>@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") <!CONFLICTING_OVERLOADS!>@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@kotlin.jvm.JvmName("containsAny") @kotlin.jvm.JvmName("containsAny")
@@ -1,6 +1,5 @@
//!DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE //!DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@kotlin.jvm.JvmName("containsAny") @kotlin.jvm.JvmName("containsAny")
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
class Inv<T> class Inv<T>
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
class Inv<T> class Inv<T>
@@ -1,6 +1,5 @@
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// Issue: KT-26698 // Issue: KT-26698
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,6 +1,5 @@
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// Issue: KT-26698 // Issue: KT-26698
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,5 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,4 +1,4 @@
// !LANGUAGE: +NewInference +NonStrictOnlyInputTypesChecks // !LANGUAGE: +NewInference -StrictOnlyInputTypesChecks
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,4 +1,4 @@
// !LANGUAGE: +NewInference +NonStrictOnlyInputTypesChecks // !LANGUAGE: +NewInference -StrictOnlyInputTypesChecks
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,5 +1,4 @@
//!DIAGNOSTICS: -UNUSED_PARAMETER //!DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -1,5 +1,4 @@
//!DIAGNOSTICS: -UNUSED_PARAMETER //!DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: -NonStrictOnlyInputTypesChecks
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
@@ -8,5 +8,5 @@ fun test() {
else -> 1.0 else -> 1.0
} }
<!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>assertEquals<!>(42, u) assertEquals(42, u)
} }
@@ -4,6 +4,6 @@
class Base<T : <!CYCLIC_GENERIC_UPPER_BOUND!>T<!>> : HashSet<T>() { class Base<T : <!CYCLIC_GENERIC_UPPER_BOUND!>T<!>> : HashSet<T>() {
fun foo() { fun foo() {
<!SUPER_CANT_BE_EXTENSION_RECEIVER!>super<!>.<!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!>remove<!>("") <!SUPER_CANT_BE_EXTENSION_RECEIVER!>super<!>.<!TYPE_INFERENCE_ONLY_INPUT_TYPES!>remove<!>("")
} }
} }
@@ -1,4 +1,4 @@
// !LANGUAGE: -ProhibitConcurrentHashMapContains -NonStrictOnlyInputTypesChecks // !LANGUAGE: -ProhibitConcurrentHashMapContains
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// FULL_JDK // FULL_JDK
@@ -1,4 +1,4 @@
// !LANGUAGE: -ProhibitConcurrentHashMapContains -NonStrictOnlyInputTypesChecks // !LANGUAGE: -ProhibitConcurrentHashMapContains
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// FULL_JDK // FULL_JDK
@@ -1,4 +1,4 @@
// !LANGUAGE: +ProhibitConcurrentHashMapContains -NonStrictOnlyInputTypesChecks // !LANGUAGE: +ProhibitConcurrentHashMapContains
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// FULL_JDK // FULL_JDK
@@ -1,4 +1,4 @@
// !LANGUAGE: +ProhibitConcurrentHashMapContains -NonStrictOnlyInputTypesChecks // !LANGUAGE: +ProhibitConcurrentHashMapContains
// !WITH_NEW_INFERENCE // !WITH_NEW_INFERENCE
// FULL_JDK // FULL_JDK
@@ -148,6 +148,7 @@ enum class LanguageFeature(
JvmIrEnabledByDefault(KOTLIN_1_5), JvmIrEnabledByDefault(KOTLIN_1_5),
// Disabled until the breaking change is approved by the committee, see KT-10884. // Disabled until the breaking change is approved by the committee, see KT-10884.
PackagePrivateFileClassesWithAllPrivateMembers(KOTLIN_1_5, defaultState = State.DISABLED), PackagePrivateFileClassesWithAllPrivateMembers(KOTLIN_1_5, defaultState = State.DISABLED),
StrictOnlyInputTypesChecks(sinceVersion = KOTLIN_1_5),
/* /*
* Improvements include the following: * Improvements include the following:
@@ -185,7 +186,6 @@ enum class LanguageFeature(
SamConversionForKotlinFunctions(sinceVersion = KOTLIN_1_4), SamConversionForKotlinFunctions(sinceVersion = KOTLIN_1_4),
SamConversionPerArgument(sinceVersion = KOTLIN_1_4), SamConversionPerArgument(sinceVersion = KOTLIN_1_4),
FunctionReferenceWithDefaultValueAsOtherType(sinceVersion = KOTLIN_1_4), FunctionReferenceWithDefaultValueAsOtherType(sinceVersion = KOTLIN_1_4),
NonStrictOnlyInputTypesChecks(sinceVersion = KOTLIN_1_4),
SuspendConversion(sinceVersion = KOTLIN_1_4, defaultState = State.DISABLED), SuspendConversion(sinceVersion = KOTLIN_1_4, defaultState = State.DISABLED),
UnitConversion(sinceVersion = KOTLIN_1_4, defaultState = State.DISABLED), UnitConversion(sinceVersion = KOTLIN_1_4, defaultState = State.DISABLED),
OverloadResolutionByLambdaReturnType(sinceVersion = KOTLIN_1_4), OverloadResolutionByLambdaReturnType(sinceVersion = KOTLIN_1_4),