Test data: adjust test data after prohibiting properties with typeparameters not used in receiver

This commit is contained in:
Pavel V. Talanov
2015-10-13 20:28:41 +03:00
parent 3468e83671
commit 47cca7db1f
39 changed files with 109 additions and 132 deletions
@@ -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
View File
@@ -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
@@ -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
@@ -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
View File
@@ -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
View File
@@ -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,3 +1,4 @@
// !DIAGNOSTICS: -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
open class Aaa() {
val bar = 1
}
+3 -3
View File
@@ -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
}
@@ -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,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,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
@@ -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,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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
@@ -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!!
}
}
@@ -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
View File
@@ -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,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,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> {
}
@@ -5,7 +5,7 @@
// ERROR: Unresolved reference: foo
class A {
val <T> test: T get() {
val <T> T.test: T get() {
return <caret>foo
}
}
@@ -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
}
}
@@ -1,7 +0,0 @@
// "Create parameter 'foo'" "false"
// ERROR: Unresolved reference: foo
// ACTION: Create property 'foo'
class A {
val <T> test: T = <caret>foo
}
@@ -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
View File
@@ -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"