langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java
changeset 45413 75202c6b2c35
parent 44576 9e18c9ce29e7
child 45504 ea7475564d07
--- 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;
                 }
             }