Do not suggest to add variance modifier if both in and out are possible
This commit is contained in:
@@ -56,8 +56,8 @@ class AddVarianceModifierInspection : AbstractKotlinInspection() {
|
||||
val variances = listOf(Variance.IN_VARIANCE, Variance.OUT_VARIANCE).filter {
|
||||
variancePossible(klass, parameterDescriptor, it, context)
|
||||
}
|
||||
if (variances.isNotEmpty()) {
|
||||
val suggested = variances.joinToString(" or ") { "'$it'" }
|
||||
if (variances.size == 1) {
|
||||
val suggested = variances.first()
|
||||
val fixes = variances.map { AddVarianceFix(it) }
|
||||
holder.registerProblem(
|
||||
typeParameter,
|
||||
|
||||
@@ -31,12 +31,4 @@
|
||||
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Type parameter can have 'in' or 'out' variance</problem_class>
|
||||
<description>Type parameter can have 'in' variance</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>test.kt</file>
|
||||
<line>24</line>
|
||||
<module>light_idea_test_case</module>
|
||||
<entry_point TYPE="file" FQNAME="temp:///src/test.kt" />
|
||||
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Type parameter can have 'in' or 'out' variance</problem_class>
|
||||
<description>Type parameter can have 'in' or 'out' variance</description>
|
||||
</problem>
|
||||
</problems>
|
||||
+1
-1
@@ -21,7 +21,7 @@ abstract class AbstractOut<T> {
|
||||
abstract class AbstractIn<T>(private val foo: T) {
|
||||
fun bar(arg: T) = foo == arg
|
||||
}
|
||||
interface Empty<T>
|
||||
interface Empty<T> // here we do not report anything to avoid ambiguity
|
||||
|
||||
abstract class AbstractInv<T>(var foo: T)
|
||||
|
||||
|
||||
+2
-1
@@ -1,2 +1,3 @@
|
||||
// "Add 'out' variance" "true"
|
||||
// "Add 'out' variance" "false"
|
||||
// ACTION: Implement interface
|
||||
interface Empty<<caret>T>
|
||||
@@ -1,2 +0,0 @@
|
||||
// "Add 'out' variance" "true"
|
||||
interface Empty<out T>
|
||||
Reference in New Issue
Block a user