diff -r b4b0377b8dba -r c7ec7facdd20 langtools/src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java --- a/langtools/src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java Thu Oct 04 13:04:53 2012 +0100 +++ b/langtools/src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java Fri Oct 05 14:35:24 2012 +0100 @@ -32,6 +32,7 @@ import com.sun.tools.javac.api.DiagnosticFormatter.Configuration.*; import com.sun.tools.javac.api.Formattable; import com.sun.tools.javac.file.BaseFileObject; +import com.sun.tools.javac.tree.JCTree.*; import com.sun.tools.javac.util.AbstractDiagnosticFormatter.SimpleConfiguration; import static com.sun.tools.javac.api.DiagnosticFormatter.PositionKind.*; @@ -117,16 +118,17 @@ @Override protected String formatArgument(JCDiagnostic diag, Object arg, Locale l) { String s; - if (arg instanceof Formattable) + if (arg instanceof Formattable) { s = arg.toString(); - else if (arg instanceof BaseFileObject) + } else if (arg instanceof JCExpression) { + JCExpression tree = (JCExpression)arg; + s = "@" + tree.getStartPosition(); + } else if (arg instanceof BaseFileObject) { s = ((BaseFileObject) arg).getShortName(); - else + } else { s = super.formatArgument(diag, arg, null); - if (arg instanceof JCDiagnostic) - return "(" + s + ")"; - else - return s; + } + return (arg instanceof JCDiagnostic) ? "(" + s + ")" : s; } @Override