Przeglądaj źródła

Added commentary on a strange bit of code

I don't want to change that code until I see more evidence of it
misbehaving but I'm having trouble working out why it is there!
tags/V1_9_0_RC3
Andy Clement 6 lat temu
rodzic
commit
d7cb30379a

+ 8
- 2
org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java Wyświetl plik

@@ -376,10 +376,16 @@ public class ReferenceType extends ResolvedType {
if (this.isFinal() || other.isFinal()) {
return false;
}
// 20170927: What is the block of code for? It mentions jls5.5 which isn't on this topic (old version of jls?)
// Some possible references: http://docs.oracle.com/javase/specs/jls/se9/jls9.pdf 5.1.6 (narrowing reference conversion)
// On Java 9 the test GenericsTests.testAfterReturningWithWildcardVar will fail because this code below
// used to find Set and List were the same, but now finds they are not. (so it doesn't put out the unchecked
// conversion message). However the code "List l = (List)someSet;" still compiles on 9 - so is this code bogus?
// ??? needs to be Methods, not just declared methods? JLS 5.5 unclear
ResolvedMember[] a = getDeclaredMethods();
ResolvedMember[] b = other.getDeclaredMethods(); // ??? is this cast
// always safe
ResolvedMember[] b = other.getDeclaredMethods();
for (int ai = 0, alen = a.length; ai < alen; ai++) {
for (int bi = 0, blen = b.length; bi < blen; bi++) {
if (!b[bi].isCompatibleWith(a[ai])) {

Ładowanie…
Anuluj
Zapisz