Turn only input type warning to error

^KT-45482 Fixed
This commit is contained in:
Victor Petukhov
2021-03-15 14:22:25 +03:00
parent c73c73e85e
commit b60056f11e
7 changed files with 12 additions and 14 deletions
@@ -478,10 +478,7 @@ class DiagnosticReporterByTrackingStrategy(
OnlyInputTypesDiagnostic::class.java -> {
val typeVariable = (error as OnlyInputTypesDiagnostic).typeVariable as? TypeVariableFromCallableDescriptor ?: return
psiKotlinCall.psiCall.calleeExpression?.let {
val factory = if (context.languageVersionSettings.supportsFeature(LanguageFeature.NonStrictOnlyInputTypesChecks))
TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING
else TYPE_INFERENCE_ONLY_INPUT_TYPES
trace.report(factory.on(it, typeVariable.originalTypeParameter))
trace.report(TYPE_INFERENCE_ONLY_INPUT_TYPES.on(it, typeVariable.originalTypeParameter))
}
}
}
@@ -10,6 +10,7 @@ fun box(): String {
assertEquals(null, pNUnit!!::class.javaPrimitiveType)
assertEquals(null, Unit::class.javaPrimitiveType)
@Suppress("TYPE_INFERENCE_ONLY_INPUT_TYPES")
assertEquals(java.lang.Void.TYPE, Nothing::class.javaPrimitiveType)
return "OK"
@@ -89,9 +89,9 @@ fun main(a: test.A, l: L<Map<String, Int>, Int?>, l1: L<Map<String, Int>, Int>)
a.bar(<!TYPE_MISMATCH!>l1 <!UNCHECKED_CAST!>as L<Map<String, Int>, Int?><!><!>)
a.baz1().t().containsKey("")
a.baz1().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES{OI}, TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING{NI}!>containsKey<!>(null)
a.baz1().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES!>containsKey<!>(null)
a.baz1().t().containsValue(1)
a.baz1().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES{OI}, TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING{NI}!>containsValue<!>(null)
a.baz1().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES!>containsValue<!>(null)
a.baz1().s().hashCode()
a.baz1().setT(l.t())
@@ -105,8 +105,8 @@ fun main(a: test.A, l: L<Map<String, Int>, Int?>, l1: L<Map<String, Int>, Int>)
a.baz2().s().hashCode()
a.baz3().t().containsKey("")
a.baz3().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES{OI}, TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING{NI}!>containsKey<!>(null)
a.baz3().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES!>containsKey<!>(null)
a.baz3().t().containsValue(1)
a.baz3().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES{OI}, TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING{NI}!>containsValue<!>(null)
a.baz3().t().<!TYPE_INFERENCE_ONLY_INPUT_TYPES!>containsValue<!>(null)
a.baz3().s().hashCode()
}
@@ -29,8 +29,8 @@ fun case_1(value_1: Int, value_2: EmptyClass, value_3: Int, value_4: Any): Strin
*/
fun case_2(value_1: Int, value_3: Nothing) {
when (value_1) {
<!OVERLOAD_RESOLUTION_AMBIGUITY, UNREACHABLE_CODE!>in<!> value_3 -> <!UNREACHABLE_CODE!>{}<!>
<!UNREACHABLE_CODE!><!OVERLOAD_RESOLUTION_AMBIGUITY!>in<!> throw Exception() -> {}<!>
<!UNREACHABLE_CODE!><!OVERLOAD_RESOLUTION_AMBIGUITY!>in<!> return -> {}<!>
<!OVERLOAD_RESOLUTION_AMBIGUITY, TYPE_MISMATCH_IN_RANGE, UNREACHABLE_CODE!>in<!> value_3 -> <!UNREACHABLE_CODE!>{}<!>
<!UNREACHABLE_CODE!><!OVERLOAD_RESOLUTION_AMBIGUITY, TYPE_MISMATCH_IN_RANGE!>in<!> throw Exception() -> {}<!>
<!UNREACHABLE_CODE!><!OVERLOAD_RESOLUTION_AMBIGUITY, TYPE_MISMATCH_IN_RANGE!>in<!> return -> {}<!>
}
}
@@ -29,7 +29,7 @@ open class Case1<K : Number> {
<!DEBUG_INFO_EXPRESSION_TYPE("L & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.get(0)
<!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.size
<!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.isEmpty()
<!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!><!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>[null]<!>
<!TYPE_INFERENCE_ONLY_INPUT_TYPES!><!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>[null]<!>
}
}
}
@@ -29,7 +29,7 @@ open class Case1<K : Number> {
<!DEBUG_INFO_EXPRESSION_TYPE("L & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.get(0)
<!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.size
<!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.isEmpty()
<!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!><!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>[null]<!>
<!TYPE_INFERENCE_ONLY_INPUT_TYPES!><!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>[null]<!>
}
}
}
@@ -29,7 +29,7 @@ open class Case1<K : Number> {
<!DEBUG_INFO_EXPRESSION_TYPE("L & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.get(0)
<!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.size
<!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>.isEmpty()
<!TYPE_INFERENCE_ONLY_INPUT_TYPES_WARNING!><!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>[null]<!>
<!TYPE_INFERENCE_ONLY_INPUT_TYPES!><!DEBUG_INFO_EXPRESSION_TYPE("M & kotlin.Any?"), DEBUG_INFO_SMARTCAST!>x<!>[null]<!>
}
}
}