FE 1.0: report TYPE_VARIANCE_CONFLICT also on qualifier type arguments

#KT-51439 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-02-22 13:15:59 +03:00
committed by Space
parent fdb01d96f0
commit 7781413a93
15 changed files with 224 additions and 17 deletions
@@ -0,0 +1,23 @@
// !LANGUAGE: -ReportTypeVarianceConflictOnQualifierArguments
class Bar<K> {
inner class Inner {
inner class SuperInner
}
}
abstract class Foo<in T> {
abstract fun yuckyEventHandler(
fn: Bar<<!TYPE_VARIANCE_CONFLICT!>T<!>>.Inner.() -> Unit
): () -> Unit
abstract fun second(fn: Bar<<!TYPE_VARIANCE_CONFLICT!>T<!>>.Inner)
abstract fun third(fn: Bar<<!TYPE_VARIANCE_CONFLICT!>T<!>>.Inner.SuperInner)
}
abstract class Baz<out T> {
abstract fun yuckyEventHandler(
fn: Bar<<!TYPE_VARIANCE_CONFLICT!>T<!>>.Inner.() -> Unit
): () -> Unit
}
@@ -0,0 +1,23 @@
// !LANGUAGE: -ReportTypeVarianceConflictOnQualifierArguments
class Bar<K> {
inner class Inner {
inner class SuperInner
}
}
abstract class Foo<in T> {
abstract fun yuckyEventHandler(
fn: Bar<<!TYPE_VARIANCE_CONFLICT_WARNING!>T<!>>.Inner.() -> Unit
): () -> Unit
abstract fun second(fn: Bar<<!TYPE_VARIANCE_CONFLICT_WARNING!>T<!>>.Inner)
abstract fun third(fn: Bar<<!TYPE_VARIANCE_CONFLICT_WARNING!>T<!>>.Inner.SuperInner)
}
abstract class Baz<out T> {
abstract fun yuckyEventHandler(
fn: Bar<<!TYPE_VARIANCE_CONFLICT_WARNING!>T<!>>.Inner.() -> Unit
): () -> Unit
}
@@ -0,0 +1,41 @@
package
public final class Bar</*0*/ K> {
public constructor Bar</*0*/ K>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final inner class Inner /*captured type parameters: /*0*/ K*/ {
public constructor Inner()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final inner class SuperInner /*captured type parameters: /*0*/ K*/ {
public constructor SuperInner()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
}
public abstract class Baz</*0*/ out T> {
public constructor Baz</*0*/ out T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public abstract fun yuckyEventHandler(/*0*/ fn: Bar<T>.Inner.() -> kotlin.Unit): () -> kotlin.Unit
}
public abstract class Foo</*0*/ in T> {
public constructor Foo</*0*/ in T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract fun second(/*0*/ fn: Bar<T>.Inner): kotlin.Unit
public abstract fun third(/*0*/ fn: Bar<T>.Inner.SuperInner): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public abstract fun yuckyEventHandler(/*0*/ fn: Bar<T>.Inner.() -> kotlin.Unit): () -> kotlin.Unit
}
@@ -0,0 +1,12 @@
// FIR_IDENTICAL
// !LANGUAGE: +ReportTypeVarianceConflictOnQualifierArguments
class Bar<K> {
inner class Inner
}
abstract class Foo<in T> {
abstract fun yuckyEventHandler(
fn: Bar<<!TYPE_VARIANCE_CONFLICT!>T<!>>.Inner.() -> Unit
): () -> Unit
}
@@ -0,0 +1,23 @@
package
public final class Bar</*0*/ K> {
public constructor Bar</*0*/ K>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final inner class Inner /*captured type parameters: /*0*/ K*/ {
public constructor Inner()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public abstract class Foo</*0*/ in T> {
public constructor Foo</*0*/ in T>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public abstract fun yuckyEventHandler(/*0*/ fn: Bar<T>.Inner.() -> kotlin.Unit): () -> kotlin.Unit
}