Refine generic signature for fields
- For vals use the same semantics as for return types - For vars use the same semantics as for value parameters
This commit is contained in:
+4
-4
@@ -58,23 +58,23 @@ fun box(): String {
|
||||
|
||||
val classField3 = clz.getDeclaredField("classField3");
|
||||
|
||||
if (classField3.getGenericType().toString() != "Zout<? extends java.lang.String>")
|
||||
if (classField3.getGenericType().toString() != "Zout<java.lang.String>")
|
||||
return "fail3:" + classField3.getGenericType();
|
||||
|
||||
|
||||
val classField4 = clz.getDeclaredField("classField4");
|
||||
|
||||
if (classField4.getGenericType().toString() != "Zin<? super TParam>")
|
||||
if (classField4.getGenericType().toString() != "Zin<TParam>")
|
||||
return "fail4:" + classField4.getGenericType();
|
||||
|
||||
val classField5 = clz.getDeclaredField("delegateLazy\$delegate");
|
||||
|
||||
if (classField5.getGenericType().toString() != "kotlin.Lazy<? extends Z<TParam>>")
|
||||
if (classField5.getGenericType().toString() != "kotlin.Lazy<Z<TParam>>")
|
||||
return "fail5:" + classField5.getGenericType();
|
||||
|
||||
val classField6 = clz.getDeclaredField("delegateNotNull\$delegate");
|
||||
|
||||
if (classField6.getGenericType().toString() != "kotlin.properties.ReadWriteProperty<? super java.lang.Object, Z<TParam>>")
|
||||
if (classField6.getGenericType().toString() != "kotlin.properties.ReadWriteProperty<java.lang.Object, Z<TParam>>")
|
||||
return "fail6:" + classField6.getGenericType();
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ public val mutList: MutableList<String> = throw Exception()
|
||||
|
||||
// field: OutInFieldKt::list
|
||||
// jvm signature: Ljava/util/List;
|
||||
// generic signature: Ljava/util/List<+Ljava/lang/String;>;
|
||||
// generic signature: Ljava/util/List<Ljava/lang/String;>;
|
||||
|
||||
// field: OutInFieldKt::mutList
|
||||
// jvm signature: Ljava/util/List;
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
class Out<out T>
|
||||
|
||||
class Final
|
||||
open class Open
|
||||
|
||||
@JvmField
|
||||
val NO_WILDCARDS: Out<Open> = Out()
|
||||
// field: FieldsKt::NO_WILDCARDS
|
||||
// generic signature: LOut<LOpen;>;
|
||||
|
||||
@JvmField
|
||||
var HAS_WILDCARDS: Out<Open> = Out()
|
||||
// field: FieldsKt::HAS_WILDCARDS
|
||||
// generic signature: LOut<+LOpen;>;
|
||||
|
||||
@JvmField
|
||||
var NO_WILDCARDS_VAR: Out<Final> = Out()
|
||||
// field: FieldsKt::NO_WILDCARDS_VAR
|
||||
// generic signature: LOut<LFinal;>;
|
||||
|
||||
@JvmSuppressWildcards
|
||||
@JvmField
|
||||
var SUPPRESSED: Out<Open> = Out()
|
||||
// field: FieldsKt::SUPPRESSED
|
||||
// generic signature: LOut<LOpen;>;
|
||||
Reference in New Issue
Block a user