--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Wed Jul 05 23:33:53 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Thu Jun 01 12:51:26 2017 -0700
@@ -1978,10 +1978,9 @@
}
} else if (checkNameClash((ClassSymbol)site.tsym, s1, s2) &&
!checkCommonOverriderIn(s1, s2, site)) {
- log.error(pos,
- "name.clash.same.erasure.no.override",
- s1, s1.location(),
- s2, s2.location());
+ log.error(pos, Errors.NameClashSameErasureNoOverride(
+ s1.name, types.memberType(site, s1).asMethodType().getParameterTypes(), s1.location(),
+ s2.name, types.memberType(site, s2).asMethodType().getParameterTypes(), s2.location()));
return s2;
}
}
@@ -2465,14 +2464,23 @@
if (!types.isSubSignature(sym.type, types.memberType(site, m2), allowStrictMethodClashCheck) &&
types.hasSameArgs(m2.erasure(types), m1.erasure(types))) {
sym.flags_field |= CLASH;
- String key = m1 == sym ?
- "name.clash.same.erasure.no.override" :
- "name.clash.same.erasure.no.override.1";
- log.error(pos,
- key,
- sym, sym.location(),
- m2, m2.location(),
- m1, m1.location());
+ if (m1 == sym) {
+ log.error(pos, Errors.NameClashSameErasureNoOverride(
+ m1.name, types.memberType(site, m1).asMethodType().getParameterTypes(), m1.location(),
+ m2.name, types.memberType(site, m2).asMethodType().getParameterTypes(), m2.location()));
+ } else {
+ ClassType ct = (ClassType)site;
+ String kind = ct.isInterface() ? "interface" : "class";
+ log.error(pos, Errors.NameClashSameErasureNoOverride1(
+ kind,
+ ct.tsym.name,
+ m1.name,
+ types.memberType(site, m1).asMethodType().getParameterTypes(),
+ m1.location(),
+ m2.name,
+ types.memberType(site, m2).asMethodType().getParameterTypes(),
+ m2.location()));
+ }
return;
}
}