--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Mon Sep 12 11:40:07 2011 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Tue Sep 13 14:14:57 2011 +0100
@@ -306,7 +306,16 @@
*/
void duplicateError(DiagnosticPosition pos, Symbol sym) {
if (!sym.type.isErroneous()) {
- log.error(pos, "already.defined", sym, sym.location());
+ Symbol location = sym.location();
+ if (location.kind == MTH &&
+ ((MethodSymbol)location).isStaticOrInstanceInit()) {
+ log.error(pos, "already.defined.in.clinit", kindName(sym), sym,
+ kindName(sym.location()), kindName(sym.location().enclClass()),
+ sym.location().enclClass());
+ } else {
+ log.error(pos, "already.defined", kindName(sym), sym,
+ kindName(sym.location()), sym.location());
+ }
}
}