File tree 2 files changed +13
-0
lines changed
compiler/src/dotty/tools/backend/jvm
tests/generic-java-signatures
2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -397,6 +397,9 @@ trait BCodeHelpers extends BCodeIdiomatic {
397
397
atPhase(erasurePhase) {
398
398
val memberTpe =
399
399
if (sym.is(Method )) sym.denot.info
400
+ else if sym.denot.validFor.phaseId > erasurePhase.id && sym.isField && sym.getter.exists then
401
+ // Memoization field of getter entered after erasure, see run/i17069 for an example
402
+ sym.getter.denot.info.resultType
400
403
else owner.denot.thisType.memberInfo(sym)
401
404
getGenericSignatureHelper(sym, owner, memberTpe).orNull
402
405
}
Original file line number Diff line number Diff line change
1
+
2
+ class Foo :
3
+ val generic : List [String ] = ???
4
+
5
+ @ main def Test =
6
+ val tpe = classOf [Foo ].getDeclaredField(" generic" ).getGenericType()
7
+ assert(tpe.getTypeName == " scala.collection.immutable.List<java.lang.String>" )
8
+
9
+ val tpe2 = classOf [Foo ].getDeclaredMethod(" generic" ).getGenericReturnType()
10
+ assert(tpe2.getTypeName == " scala.collection.immutable.List<java.lang.String>" )
You can’t perform that action at this time.
0 commit comments