Report errors for type parameters of properties that are not used in receiver types
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
// !DIAGNOSTICS: -REDUNDANT_PROJECTION -CONFLICTING_PROJECTION
|
||||
|
||||
interface G
|
||||
|
||||
val <T> T.a: Int
|
||||
get() = 3
|
||||
|
||||
val <T1, T2> Map<T1, T2>.b: String
|
||||
get() = "asds"
|
||||
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T : G<!>> G.c: Int get() = 5
|
||||
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T1<!>, T2, T3> List<Map<T2, T3>>.d: Int get() = 6
|
||||
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T: Any<!>> G.e: T?
|
||||
get() = null
|
||||
|
||||
val <T> List<Map<Int, Map<String, T>>>.f: Int get() = 7
|
||||
|
||||
val <T> List<Map<Int, Map<String, out T>>>.g: Int get() = 7
|
||||
val <T> List<Map<Int, Map<String, in T>>>.h: Int get() = 7
|
||||
|
||||
val <T> List<Map<T, Map<T, T>>>.i: Int get() = 7
|
||||
|
||||
var <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T1<!>, <!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T2<!>, <!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T3<!>, <!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T4<!>> p = 1
|
||||
|
||||
class C<T1, T2> {
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>E<!>> T1.a: Int get() = 3
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>E<!>> T2.b: Int get() = 3
|
||||
val <E> E.c: Int get() = 3
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>E<!>> Map<T1, T2>.d: Int get() = 3
|
||||
val <E> Map<T1, E>.e: Int get() = 3
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package
|
||||
|
||||
public var </*0*/ T1, /*1*/ T2, /*2*/ T3, /*3*/ T4> p: kotlin.Int
|
||||
public val </*0*/ T> T.a: kotlin.Int
|
||||
public val </*0*/ T1, /*1*/ T2> kotlin.Map<T1, T2>.b: kotlin.String
|
||||
public val </*0*/ T : G> G.c: kotlin.Int
|
||||
public val </*0*/ T1, /*1*/ T2, /*2*/ T3> kotlin.List<kotlin.Map<T2, T3>>.d: kotlin.Int
|
||||
public val </*0*/ T : kotlin.Any> G.e: T?
|
||||
public val </*0*/ T> kotlin.List<kotlin.Map<kotlin.Int, kotlin.Map<kotlin.String, T>>>.f: kotlin.Int
|
||||
public val </*0*/ T> kotlin.List<kotlin.Map<kotlin.Int, kotlin.Map<kotlin.String, out T>>>.g: kotlin.Int
|
||||
public val </*0*/ T> kotlin.List<kotlin.Map<kotlin.Int, kotlin.Map<kotlin.String, in T>>>.h: kotlin.Int
|
||||
public val </*0*/ T> kotlin.List<kotlin.Map<T, kotlin.Map<T, T>>>.i: kotlin.Int
|
||||
|
||||
public final class C</*0*/ T1, /*1*/ T2> {
|
||||
public constructor C</*0*/ T1, /*1*/ T2>()
|
||||
public final val </*0*/ E> T1.a: kotlin.Int
|
||||
public final val </*0*/ E> T2.b: kotlin.Int
|
||||
public final val </*0*/ E> E.c: kotlin.Int
|
||||
public final val </*0*/ E> kotlin.Map<T1, T2>.d: kotlin.Int
|
||||
public final val </*0*/ E> kotlin.Map<T1, E>.e: kotlin.Int
|
||||
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 interface G {
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user