Test data: adjust test data after prohibiting properties with typeparameters not used in receiver
This commit is contained in:
@@ -2,6 +2,6 @@ package test;
|
||||
|
||||
class GenericProperty {
|
||||
void foo() {
|
||||
java.util.Map<?, ?> o = TestPackage.getTest();
|
||||
java.util.Map<String, Integer> o = TestPackage.getTest(new java.util.HashMap<Integer, String>());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,5 @@ package test
|
||||
|
||||
// Tests that type variables of properties are written to the getter signature
|
||||
|
||||
val <K, V> test: Map<K, V>
|
||||
get() = java.util.HashMap()
|
||||
val <K, V> Map<K, V>.test: Map<V, K>
|
||||
get() = this as Map<V, K>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package test
|
||||
|
||||
public val </*0*/ K, /*1*/ V> test: kotlin.Map<K, V>
|
||||
public val </*0*/ K, /*1*/ V> kotlin.Map<K, V>.test: kotlin.Map<V, K>
|
||||
|
||||
public/*package*/ open class GenericProperty {
|
||||
public/*package*/ constructor GenericProperty()
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
interface A {
|
||||
interface A<H> {
|
||||
fun foo() : Int = 1
|
||||
fun foo2() : Int = 1
|
||||
fun foo1() : Int = 1
|
||||
val a : Int
|
||||
val a1 : Int
|
||||
val <T> g : Iterator<T>
|
||||
val g : Iterator<H>
|
||||
|
||||
fun <T> g() : T
|
||||
fun <T> g1() : T
|
||||
}
|
||||
|
||||
abstract class B() : A {
|
||||
abstract class B<H>() : A<H> {
|
||||
override fun <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>foo<!>() {
|
||||
}
|
||||
override fun foo2() : <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Unit<!> {
|
||||
@@ -22,5 +22,5 @@ abstract class B() : A {
|
||||
abstract override fun <X> g() : <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Int<!>
|
||||
abstract override fun <X> g1() : <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>List<X><!>
|
||||
|
||||
abstract override val <X> g : <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Iterator<Int><!>
|
||||
abstract override val g : <!RETURN_TYPE_MISMATCH_ON_OVERRIDE!>Iterator<Int><!>
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package
|
||||
|
||||
public interface A {
|
||||
public interface A</*0*/ H> {
|
||||
public abstract val a: kotlin.Int
|
||||
public abstract val a1: kotlin.Int
|
||||
public abstract val </*0*/ T> g: kotlin.Iterator<T>
|
||||
public abstract val g: kotlin.Iterator<H>
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun foo(): kotlin.Int
|
||||
public open fun foo1(): kotlin.Int
|
||||
@@ -14,11 +14,11 @@ public interface A {
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public abstract class B : A {
|
||||
public constructor B()
|
||||
public abstract class B</*0*/ H> : A<H> {
|
||||
public constructor B</*0*/ H>()
|
||||
public open override /*1*/ val a: kotlin.Double = 1.0.toDouble()
|
||||
public open override /*1*/ val a1: kotlin.Double = 1.0.toDouble()
|
||||
public abstract override /*1*/ val </*0*/ X> g: kotlin.Iterator<kotlin.Int>
|
||||
public abstract override /*1*/ val g: kotlin.Iterator<kotlin.Int>
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun foo1(): kotlin.Int
|
||||
|
||||
+4
-4
@@ -9,9 +9,9 @@ interface B {
|
||||
}
|
||||
|
||||
interface G<X> {
|
||||
val <X> boo: Double where X : A, X : B
|
||||
val <A> bal: Double where A : B
|
||||
val <Y> bas: Double where Y : B, <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>X<!> : B
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>X<!>> boo: Double where X : A, X : B
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>A<!>> bal: Double where A : B
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>Y<!>> bas: Double where Y : B, <!NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER!>X<!> : B
|
||||
}
|
||||
|
||||
class C() : A(), B
|
||||
@@ -66,4 +66,4 @@ val t1 = test2<<!UPPER_BOUND_VIOLATED!>A<!>>(A())
|
||||
val t2 = test2<<!UPPER_BOUND_VIOLATED!>B<!>>(C())
|
||||
val t3 = test2<C>(C())
|
||||
|
||||
val <T, B : T> x : Int = 0
|
||||
val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T<!>, <!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>B : T<!>> x : Int = 0
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
annotation class A1
|
||||
annotation class A2(val some: Int = 12)
|
||||
|
||||
val <<!UNSUPPORTED!>@A1<!> <!UNSUPPORTED!>@A2(3)<!> <!UNSUPPORTED!>@A2<!> <!UNSUPPORTED!>@A1(12)<!> <!UNSUPPORTED!>@A2("Test")<!> T> topProp = 12
|
||||
val <<!UNSUPPORTED!>@A1<!> <!UNSUPPORTED!>@A2(3)<!> <!UNSUPPORTED!>@A2<!> <!UNSUPPORTED!>@A1(12)<!> <!UNSUPPORTED!>@A2("Test")<!> T> T.topProp: Int get() = 12
|
||||
|
||||
class SomeClass {
|
||||
val <<!UNSUPPORTED!>@A1<!> <!UNSUPPORTED!>@A2(3)<!> <!UNSUPPORTED!>@A2<!> <!UNSUPPORTED!>@A1(12)<!> <!UNSUPPORTED!>@A2("Test")<!> T> field = 12
|
||||
val <<!UNSUPPORTED!>@A1<!> <!UNSUPPORTED!>@A2(3)<!> <!UNSUPPORTED!>@A2<!> <!UNSUPPORTED!>@A1(12)<!> <!UNSUPPORTED!>@A2("Test")<!> T> T.field: Int get() = 12
|
||||
|
||||
fun foo() {
|
||||
val <<!UNSUPPORTED!>@A1<!> <!UNSUPPORTED!>@A2(3)<!> <!UNSUPPORTED!>@A2<!> <!UNSUPPORTED!>@A1(12)<!> <!UNSUPPORTED!>@A2("Test")<!> T> <!UNUSED_VARIABLE!>localVal<!> = 12
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package
|
||||
|
||||
public val </*0*/ T> topProp: kotlin.Int = 12
|
||||
public val </*0*/ T> T.topProp: kotlin.Int
|
||||
|
||||
@kotlin.annotation.annotation() public final class A1 : kotlin.Annotation {
|
||||
public constructor A1()
|
||||
@@ -19,7 +19,7 @@ public val </*0*/ T> topProp: kotlin.Int = 12
|
||||
|
||||
public final class SomeClass {
|
||||
public constructor SomeClass()
|
||||
public final val </*0*/ T> field: kotlin.Int = 12
|
||||
public final val </*0*/ T> T.field: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
|
||||
@@ -1,15 +1,2 @@
|
||||
val <<!REIFIED_TYPE_PARAMETER_NO_INLINE!>reified<!> T> v: T
|
||||
val <<!REIFIED_TYPE_PARAMETER_NO_INLINE!>reified<!> T> T.v: T
|
||||
get() = throw UnsupportedOperationException()
|
||||
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
fun <A> main() {
|
||||
val <!UNUSED_VARIABLE!>a<!> = <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER, DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>v<!>
|
||||
|
||||
val <!UNUSED_VARIABLE!>b<!>: A = <!TYPE_PARAMETER_AS_REIFIED!>v<!>
|
||||
|
||||
val <!UNUSED_VARIABLE!>c<!>: Int = v
|
||||
|
||||
// TODO svtk, uncomment when extensions are called for nested calls!
|
||||
//val < !UNUSED_VARIABLE!>d< !>: A = id(< !TYPE_PARAMETER_AS_REIFIED!>v< !>)
|
||||
}
|
||||
@@ -1,5 +1,3 @@
|
||||
package
|
||||
|
||||
public val </*0*/ reified T> v: T
|
||||
public fun </*0*/ T> id(/*0*/ p: T): T
|
||||
public fun </*0*/ A> main(): kotlin.Unit
|
||||
public val </*0*/ reified T> T.v: T
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
val <T, E> T.foo : E<!BASE_WITH_NULLABLE_UPPER_BOUND!>?<!>
|
||||
val <T> T.foo : T<!BASE_WITH_NULLABLE_UPPER_BOUND!>?<!>
|
||||
get() = null
|
||||
|
||||
fun test(): Int? {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package
|
||||
|
||||
public val </*0*/ T, /*1*/ E> T.foo: E?
|
||||
public val </*0*/ T> T.foo: T?
|
||||
public fun test(): kotlin.Int?
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// !DIAGNOSTICS: -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
package override.generics
|
||||
|
||||
abstract class MyAbstractClass<T> {
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// !DIAGNOSTICS: -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
open class Aaa() {
|
||||
val bar = 1
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ abstract class MyAbstractClass1 : MyTrait<Int>, MyAbstractClass<String>() {
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class MyIllegalGenericClass1<!><T> : MyTrait<T>, MyAbstractClass<T>() {}
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class MyIllegalGenericClass2<!><T, R>(r : R) : MyTrait<T>, MyAbstractClass<R>() {
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun foo(r: R) = r
|
||||
<!CONFLICTING_OVERLOADS!><!NOTHING_TO_OVERRIDE!>override<!> val <T> pr : R<!> = r
|
||||
<!CONFLICTING_OVERLOADS!><!NOTHING_TO_OVERRIDE!>override<!> val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T<!>> pr : R<!> = r
|
||||
}
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class MyIllegalClass1<!> : MyTrait<Int>, MyAbstractClass<String>() {}
|
||||
abstract class MyLegalAbstractClass1 : MyTrait<Int>, MyAbstractClass<String>() {}
|
||||
@@ -51,10 +51,10 @@ abstract class MyLegalAbstractClass1 : MyTrait<Int>, MyAbstractClass<String>() {
|
||||
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class MyIllegalClass2<!><T>(t : T) : MyTrait<Int>, MyAbstractClass<Int>() {
|
||||
fun foo(t: T) = t
|
||||
fun bar(t: T) = t
|
||||
<!CONFLICTING_OVERLOADS!>val <R> pr : T<!> = t
|
||||
<!CONFLICTING_OVERLOADS!>val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>R<!>> pr : T<!> = t
|
||||
}
|
||||
abstract class MyLegalAbstractClass2<T>(t : T) : MyTrait<Int>, MyAbstractClass<Int>() {
|
||||
fun foo(t: T) = t
|
||||
fun bar(t: T) = t
|
||||
<!CONFLICTING_OVERLOADS!>val <R> pr : T<!> = t
|
||||
<!CONFLICTING_OVERLOADS!>val <<!TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>R<!>> pr : T<!> = t
|
||||
}
|
||||
+1
-1
@@ -2,5 +2,5 @@ fun <<!REDECLARATION, REDECLARATION!>T<!>, <!REDECLARATION, REDECLARATION!>T<!>>
|
||||
|
||||
class P<<!REDECLARATION!>T<!>, <!REDECLARATION!>T<!>> {}
|
||||
|
||||
val <<!REDECLARATION, REDECLARATION, REDECLARATION!>T<!>, <!REDECLARATION, REDECLARATION, REDECLARATION!>T<!>> T.foo : Int
|
||||
val <<!REDECLARATION, REDECLARATION, REDECLARATION, TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER!>T<!>, <!REDECLARATION, REDECLARATION, REDECLARATION!>T<!>> T.foo : Int
|
||||
get() = 1
|
||||
@@ -1,3 +1,3 @@
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
fun <T: <!CYCLIC_GENERIC_UPPER_BOUND!>T?<!>> foo() {}
|
||||
val <T: <!CYCLIC_GENERIC_UPPER_BOUND!>T?<!>> prop
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED_OR_BE_ABSTRACT
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED_OR_BE_ABSTRACT -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
class My {
|
||||
fun <T: <!CYCLIC_GENERIC_UPPER_BOUND!>T?<!>> foo() {}
|
||||
val <T: <!CYCLIC_GENERIC_UPPER_BOUND!>T?<!>> prop: T
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
fun <T: <!CYCLIC_GENERIC_UPPER_BOUND!>T<!>> foo() {}
|
||||
val <T: <!CYCLIC_GENERIC_UPPER_BOUND!>T?<!>> prop: T
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ fun <<!UPPER_BOUND_CANNOT_BE_ARRAY!>T : <!FINAL_UPPER_BOUND!>IntArray<!><!>> f4(
|
||||
|
||||
fun <<!UPPER_BOUND_CANNOT_BE_ARRAY!>T<!>> f5() where T : Array<Any> {}
|
||||
|
||||
val <<!UPPER_BOUND_CANNOT_BE_ARRAY!>T : Array<Any?><!>> v = ""
|
||||
val <<!UPPER_BOUND_CANNOT_BE_ARRAY!>T : Array<Any?><!>> T.v: String get() = ""
|
||||
|
||||
class C2<T, <!UPPER_BOUND_CANNOT_BE_ARRAY!>A : Array<out T><!>>
|
||||
interface C3<S, T : S, <!UPPER_BOUND_CANNOT_BE_ARRAY!>A<!>> where A : Array<out S>, A : Array<out T>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package
|
||||
|
||||
public val </*0*/ T : kotlin.Array<kotlin.Any?>> v: kotlin.String = ""
|
||||
public val </*0*/ T : kotlin.Array<kotlin.Any?>> T.v: kotlin.String
|
||||
public fun </*0*/ A : kotlin.Array<kotlin.Any>> f1(): kotlin.Unit
|
||||
public fun </*0*/ T, /*1*/ A : kotlin.Array<out T>> f2(): kotlin.Unit
|
||||
public fun </*0*/ S, /*1*/ T : S, /*2*/ A : kotlin.Array<out S>> f3(): kotlin.Unit where A : kotlin.Array<out T>
|
||||
|
||||
+10
-10
@@ -34,15 +34,15 @@ abstract class Test<in I, out O, P> {
|
||||
abstract val In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>.receiver4: Int
|
||||
abstract val In<O>.receiver5: Int
|
||||
|
||||
val <X : I> typeParameter1 = 8
|
||||
val <X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>> typeParameter2 = 13
|
||||
val <X : P> typeParameter3 = 21
|
||||
val <X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>> typeParameter4 = 34
|
||||
val <X : In<O>> typeParameter5 = 55
|
||||
val <X : I> X.typeParameter1: Int get() = 0
|
||||
val <X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>> X.typeParameter2: Int get() = 0
|
||||
val <X : P> X.typeParameter3: Int get() = 0
|
||||
val <X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>> X.typeParameter4: Int get() = 0
|
||||
val <X : In<O>> X.typeParameter5: Int get() = 0
|
||||
|
||||
val <X> typeParameter6 where X : I = 1
|
||||
val <X> typeParameter7 where X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!> = 1
|
||||
val <X> typeParameter8 where X : P = 2
|
||||
val <X> typeParameter9 where X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>> = 3
|
||||
val <X> typeParameter0 where X : In<O> = 5
|
||||
val <X> X.typeParameter6: Int where X : I get() = 0
|
||||
val <X> X.typeParameter7: Int where X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!> get() = 0
|
||||
val <X> X.typeParameter8: Int where X : P get() = 0
|
||||
val <X> X.typeParameter9: Int where X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>> get() = 0
|
||||
val <X> X.typeParameter0: Int where X : In<O> get() = 0
|
||||
}
|
||||
+10
-10
@@ -46,21 +46,21 @@ public abstract class Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
public abstract val type3: P
|
||||
public abstract val type4: In<I>
|
||||
public abstract val type5: In<O>
|
||||
public final val </*0*/ X : In<O>> typeParameter0: kotlin.Int = 5
|
||||
public final val </*0*/ X : I> typeParameter1: kotlin.Int = 8
|
||||
public final val </*0*/ X : O> typeParameter2: kotlin.Int = 13
|
||||
public final val </*0*/ X : P> typeParameter3: kotlin.Int = 21
|
||||
public final val </*0*/ X : In<I>> typeParameter4: kotlin.Int = 34
|
||||
public final val </*0*/ X : In<O>> typeParameter5: kotlin.Int = 55
|
||||
public final val </*0*/ X : I> typeParameter6: kotlin.Int = 1
|
||||
public final val </*0*/ X : O> typeParameter7: kotlin.Int = 1
|
||||
public final val </*0*/ X : P> typeParameter8: kotlin.Int = 2
|
||||
public final val </*0*/ X : In<I>> typeParameter9: kotlin.Int = 3
|
||||
public abstract val I.receiver1: kotlin.Int
|
||||
public abstract val O.receiver2: kotlin.Int
|
||||
public abstract val P.receiver3: kotlin.Int
|
||||
public abstract val In<I>.receiver4: kotlin.Int
|
||||
public abstract val In<O>.receiver5: kotlin.Int
|
||||
public final val </*0*/ X : In<O>> X.typeParameter0: kotlin.Int
|
||||
public final val </*0*/ X : I> X.typeParameter1: kotlin.Int
|
||||
public final val </*0*/ X : O> X.typeParameter2: kotlin.Int
|
||||
public final val </*0*/ X : P> X.typeParameter3: kotlin.Int
|
||||
public final val </*0*/ X : In<I>> X.typeParameter4: kotlin.Int
|
||||
public final val </*0*/ X : In<O>> X.typeParameter5: kotlin.Int
|
||||
public final val </*0*/ X : I> X.typeParameter6: kotlin.Int
|
||||
public final val </*0*/ X : O> X.typeParameter7: kotlin.Int
|
||||
public final val </*0*/ X : P> X.typeParameter8: kotlin.Int
|
||||
public final val </*0*/ X : In<I>> X.typeParameter9: 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
|
||||
|
||||
+10
-10
@@ -34,15 +34,15 @@ abstract class Test<in I, out O, P> {
|
||||
abstract var In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>.receiver4: Int
|
||||
abstract var In<O>.receiver5: Int
|
||||
|
||||
var <X : I> typeParameter1 = 8
|
||||
var <X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>> typeParameter2 = 13
|
||||
var <X : P> typeParameter3 = 21
|
||||
var <X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>> typeParameter4 = 34
|
||||
var <X : In<O>> typeParameter5 = 55
|
||||
var <X : I> X.typeParameter1: Int get() = 0; set(i) {}
|
||||
var <X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!>> X.typeParameter2: Int get() = 0; set(i) {}
|
||||
var <X : P> X.typeParameter3: Int get() = 0; set(i) {}
|
||||
var <X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>>> X.typeParameter4: Int get() = 0; set(i) {}
|
||||
var <X : In<O>> X.typeParameter5: Int get() = 0; set(i) {}
|
||||
|
||||
var <X> typeParameter6 where X : I = 1
|
||||
var <X> typeParameter7 where X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!> = 1
|
||||
var <X> typeParameter8 where X : P = 2
|
||||
var <X> typeParameter9 where X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>> = 3
|
||||
var <X> typeParameter0 where X : In<O> = 5
|
||||
var <X> X.typeParameter6: Int where X : I get() = 0; set(i) {}
|
||||
var <X> X.typeParameter7: Int where X : <!TYPE_VARIANCE_CONFLICT(O; out; in; O)!>O<!> get() = 0; set(i) {}
|
||||
var <X> X.typeParameter8: Int where X : P get() = 0; set(i) {}
|
||||
var <X> X.typeParameter9: Int where X : In<<!TYPE_VARIANCE_CONFLICT(I; in; out; In<I>)!>I<!>> get() = 0; set(i) {}
|
||||
var <X> X.typeParameter0: Int where X : In<O> get() = 0; set(i) {}
|
||||
}
|
||||
+10
-10
@@ -46,21 +46,21 @@ public abstract class Test</*0*/ in I, /*1*/ out O, /*2*/ P> {
|
||||
public abstract var type3: P
|
||||
public abstract var type4: In<I>
|
||||
public abstract var type5: In<O>
|
||||
public final var </*0*/ X : In<O>> typeParameter0: kotlin.Int
|
||||
public final var </*0*/ X : I> typeParameter1: kotlin.Int
|
||||
public final var </*0*/ X : O> typeParameter2: kotlin.Int
|
||||
public final var </*0*/ X : P> typeParameter3: kotlin.Int
|
||||
public final var </*0*/ X : In<I>> typeParameter4: kotlin.Int
|
||||
public final var </*0*/ X : In<O>> typeParameter5: kotlin.Int
|
||||
public final var </*0*/ X : I> typeParameter6: kotlin.Int
|
||||
public final var </*0*/ X : O> typeParameter7: kotlin.Int
|
||||
public final var </*0*/ X : P> typeParameter8: kotlin.Int
|
||||
public final var </*0*/ X : In<I>> typeParameter9: kotlin.Int
|
||||
public abstract var I.receiver1: kotlin.Int
|
||||
public abstract var O.receiver2: kotlin.Int
|
||||
public abstract var P.receiver3: kotlin.Int
|
||||
public abstract var In<I>.receiver4: kotlin.Int
|
||||
public abstract var In<O>.receiver5: kotlin.Int
|
||||
public final var </*0*/ X : In<O>> X.typeParameter0: kotlin.Int
|
||||
public final var </*0*/ X : I> X.typeParameter1: kotlin.Int
|
||||
public final var </*0*/ X : O> X.typeParameter2: kotlin.Int
|
||||
public final var </*0*/ X : P> X.typeParameter3: kotlin.Int
|
||||
public final var </*0*/ X : In<I>> X.typeParameter4: kotlin.Int
|
||||
public final var </*0*/ X : In<O>> X.typeParameter5: kotlin.Int
|
||||
public final var </*0*/ X : I> X.typeParameter6: kotlin.Int
|
||||
public final var </*0*/ X : O> X.typeParameter7: kotlin.Int
|
||||
public final var </*0*/ X : P> X.typeParameter8: kotlin.Int
|
||||
public final var </*0*/ X : In<I>> X.typeParameter9: 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
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// !DIAGNOSTICS: -UNREACHABLE_CODE
|
||||
// unreachable code suppressed due to KT-9586
|
||||
|
||||
@native
|
||||
val baz: Int
|
||||
@native
|
||||
|
||||
+1
-1
@@ -6,6 +6,6 @@ class MembersReferenceOuterTP<P> {
|
||||
fun g(p: P): P = null!!
|
||||
|
||||
val v: P = null!!
|
||||
val <Q : P> w: Q = null!!
|
||||
val <Q : P> Q.w: Q get() = null!!
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -7,8 +7,8 @@ public final class MembersReferenceOuterTP</*0*/ P> {
|
||||
/*primary*/ public constructor Inner()
|
||||
public final val v: P
|
||||
public final fun <get-v>(): P
|
||||
public final val </*0*/ Q : P> w: Q
|
||||
public final fun <get-w>(): Q
|
||||
public final val </*0*/ Q : P> Q.w: Q
|
||||
public final fun Q.<get-w>(): Q
|
||||
public final fun </*0*/ Q : P> f(): kotlin.Unit
|
||||
public final fun g(/*0*/ p: P): P
|
||||
}
|
||||
|
||||
+3
-1
@@ -60,4 +60,6 @@ val t1 = test2<<error>A</error>>(A())
|
||||
val t2 = test2<<error>B</error>>(C())
|
||||
val t3 = test2<C>(C())
|
||||
|
||||
val <T, B : T> x : Int = 0
|
||||
val <T, B: T> Pair<T, B>.x : Int get() = 0
|
||||
|
||||
class Pair<A, B>()
|
||||
|
||||
@@ -27,13 +27,13 @@ class TypeParams<in T1 : Any, out T2, T3 : (Int) -> Int, T4, T5 : Any?, T6 : T5,
|
||||
fun T1.withOwnParamExtensionAfterName<T1>(p: T1) {
|
||||
}
|
||||
|
||||
val <G1> withOwnParam: G1
|
||||
val <G1> G1.withOwnParam: G1
|
||||
get() = throw IllegalStateException()
|
||||
|
||||
val <G1: Int?> withOwnBoundedParam: G1
|
||||
val <G1: Int?> G1.withOwnBoundedParam: G1
|
||||
get() = throw IllegalStateException()
|
||||
|
||||
val <G1: T4> withOwnBoundedParamByOther: G1
|
||||
val <G1: T4> G1.withOwnBoundedParamByOther: G1
|
||||
get() = throw IllegalStateException()
|
||||
|
||||
val useSomeParam: T2
|
||||
|
||||
@@ -84,7 +84,7 @@ PsiJetFileStubImpl[package=test]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=T2]
|
||||
PROPERTY:[fqName=test.TypeParams.withOwnBoundedParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=withOwnBoundedParam]
|
||||
PROPERTY:[fqName=test.TypeParams.withOwnBoundedParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=withOwnBoundedParam]
|
||||
MODIFIER_LIST:[public final]
|
||||
TYPE_PARAMETER_LIST:
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=G1]
|
||||
@@ -97,7 +97,10 @@ PsiJetFileStubImpl[package=test]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G1]
|
||||
PROPERTY:[fqName=test.TypeParams.withOwnBoundedParamByOther, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=withOwnBoundedParamByOther]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G1]
|
||||
PROPERTY:[fqName=test.TypeParams.withOwnBoundedParamByOther, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=withOwnBoundedParamByOther]
|
||||
MODIFIER_LIST:[public final]
|
||||
TYPE_PARAMETER_LIST:
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=G1]
|
||||
@@ -107,13 +110,19 @@ PsiJetFileStubImpl[package=test]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G1]
|
||||
PROPERTY:[fqName=test.TypeParams.withOwnParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=withOwnParam]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G1]
|
||||
PROPERTY:[fqName=test.TypeParams.withOwnParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=withOwnParam]
|
||||
MODIFIER_LIST:[public final]
|
||||
TYPE_PARAMETER_LIST:
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=G1]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G1]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G1]
|
||||
FUN:[fqName=test.TypeParams.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, name=f]
|
||||
MODIFIER_LIST:[public final]
|
||||
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=inline]
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// ERROR: Property must be initialized or be abstract
|
||||
// ERROR: Type parameter of a property must be used in its receiver type
|
||||
|
||||
class Owner<T> {
|
||||
val <R> <caret>p: R
|
||||
|
||||
+1
@@ -1,4 +1,5 @@
|
||||
// ERROR: Property must be initialized or be abstract
|
||||
// ERROR: Type parameter of a property must be used in its receiver type
|
||||
|
||||
class Owner<T> {
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
// ERROR: Unresolved reference: foo
|
||||
|
||||
class A {
|
||||
val <T> test: T get() {
|
||||
val <T> T.test: T get() {
|
||||
return <caret>foo
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
// ERROR: Unresolved reference: foo
|
||||
|
||||
class A<T> {
|
||||
val <T> test: T get() {
|
||||
val <T> T.test: T get() {
|
||||
return <caret>foo
|
||||
}
|
||||
}
|
||||
Vendored
-7
@@ -1,7 +0,0 @@
|
||||
// "Create parameter 'foo'" "false"
|
||||
// ERROR: Unresolved reference: foo
|
||||
// ACTION: Create property 'foo'
|
||||
|
||||
class A {
|
||||
val <T> test: T = <caret>foo
|
||||
}
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
// "Create parameter 'foo'" "false"
|
||||
// ACTION: Create property 'foo'
|
||||
// ERROR: Unresolved reference: foo
|
||||
|
||||
class A<T> {
|
||||
val <T> test: T = <caret>foo
|
||||
}
|
||||
@@ -2660,18 +2660,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("inGenPropertyInitializerInClass.kt")
|
||||
public void testInGenPropertyInitializerInClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/createFromUsage/createVariable/parameter/inGenPropertyInitializerInClass.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("inGenPropertyInitializerInGenClass.kt")
|
||||
public void testInGenPropertyInitializerInGenClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/createFromUsage/createVariable/parameter/inGenPropertyInitializerInGenClass.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("inLambdaNoParams.kt")
|
||||
public void testInLambdaNoParams() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/createFromUsage/createVariable/parameter/inLambdaNoParams.kt");
|
||||
|
||||
+5
-5
@@ -32,7 +32,7 @@ fun assertAllEqual<T>(c: Iterable<out T>) {
|
||||
|
||||
val hashCoder: (o: Any) -> Int = { o -> o.hashCode() }
|
||||
|
||||
val <T> wrapInH = { t: T -> Holder(t) }
|
||||
fun <T> wrapInH(t: T) = Holder(t)
|
||||
|
||||
fun box(): String {
|
||||
|
||||
@@ -53,14 +53,14 @@ fun box(): String {
|
||||
assertSomeNotEqual(differentOs.map(hashCoder))
|
||||
|
||||
// Both Dat's and Obj's wrapped as Holder should retain their hashcode relations.
|
||||
val sameHDs = sameDs.map(wrapInH)
|
||||
val sameHDs = sameDs.map { wrapInH(it) }
|
||||
assertAllEqual(sameHDs.map(hashCoder))
|
||||
val differentHDs = differentDs.map(wrapInH)
|
||||
val differentHDs = differentDs.map { wrapInH(it) }
|
||||
assertSomeNotEqual(differentHDs.map(hashCoder))
|
||||
|
||||
val sameHOs = sameOs.map(wrapInH)
|
||||
val sameHOs = sameOs.map { wrapInH(it) }
|
||||
assertSomeNotEqual(sameHOs.map(hashCoder))
|
||||
val differentHOs = differentOs.map(wrapInH)
|
||||
val differentHOs = differentOs.map { wrapInH(it) }
|
||||
assertSomeNotEqual(differentHOs.map(hashCoder))
|
||||
|
||||
return "OK"
|
||||
|
||||
Reference in New Issue
Block a user