1.1 --- a/src/share/classes/com/sun/tools/javac/code/Symbol.java Tue Mar 11 13:14:55 2008 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java Wed Mar 12 13:06:00 2008 -0700 1.3 @@ -25,13 +25,9 @@ 1.4 1.5 package com.sun.tools.javac.code; 1.6 1.7 -import java.util.ArrayList; 1.8 -import java.util.Collections; 1.9 import java.util.Set; 1.10 import java.util.concurrent.Callable; 1.11 import javax.lang.model.element.*; 1.12 -import javax.lang.model.type.ReferenceType; 1.13 -import javax.lang.model.type.TypeMirror; 1.14 import javax.tools.JavaFileObject; 1.15 1.16 import com.sun.tools.javac.util.*; 1.17 @@ -1272,8 +1268,14 @@ 1.18 private static final long serialVersionUID = 0; 1.19 public Symbol sym; 1.20 1.21 + /** A diagnostic object describing the failure 1.22 + */ 1.23 + public JCDiagnostic diag; 1.24 + 1.25 /** A localized string describing the failure. 1.26 + * @deprecated Use {@code getDetail()} or {@code getMessage()} 1.27 */ 1.28 + @Deprecated 1.29 public String errmsg; 1.30 1.31 public CompletionFailure(Symbol sym, String errmsg) { 1.32 @@ -1282,8 +1284,26 @@ 1.33 // this.printStackTrace();//DEBUG 1.34 } 1.35 1.36 + public CompletionFailure(Symbol sym, JCDiagnostic diag) { 1.37 + this.sym = sym; 1.38 + this.diag = diag; 1.39 +// this.printStackTrace();//DEBUG 1.40 + } 1.41 + 1.42 + public JCDiagnostic getDiagnostic() { 1.43 + return diag; 1.44 + } 1.45 + 1.46 + @Override 1.47 public String getMessage() { 1.48 - return errmsg; 1.49 + if (diag != null) 1.50 + return diag.getMessage(null); 1.51 + else 1.52 + return errmsg; 1.53 + } 1.54 + 1.55 + public Object getDetailValue() { 1.56 + return (diag != null ? diag : errmsg); 1.57 } 1.58 1.59 @Override