File tree Expand file tree Collapse file tree 2 files changed +10
-7
lines changed
compiler/src/dotty/tools/backend/jvm Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Original file line number Diff line number Diff line change @@ -397,13 +397,10 @@ trait BCodeHelpers extends BCodeIdiomatic {
397
397
atPhase(erasurePhase) {
398
398
val memberTpe =
399
399
if (sym.is(Method )) sym.denot.info
400
- else
401
- val sym0 =
402
- if sym.isField && sym.denot.validFor.phaseId > erasurePhase.id then
403
- sym.getter.orElse(sym)
404
- else
405
- sym
406
- owner.denot.thisType.memberInfo(sym0)
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/i16069 for an example
402
+ sym.getter.denot.info.resultType
403
+ else owner.denot.thisType.memberInfo(sym)
407
404
getGenericSignatureHelper(sym, owner, memberTpe).orNull
408
405
}
409
406
}
Original file line number Diff line number Diff line change
1
+
1
2
class Foo :
2
3
val generic : List [String ] = ???
4
+
5
+ @ main def Test =
6
+ val tpe = classOf [Foo ].getDeclaredField(" generic" ).getGenericType()
7
+ val tpe2 = classOf [Foo ].getDeclaredMethod(" generic" ).getGenericReturnType()
8
+ assert(tpe == tpe2)
You can’t perform that action at this time.
0 commit comments