43 import com.sun.tools.javac.code.Scope; |
43 import com.sun.tools.javac.code.Scope; |
44 import com.sun.tools.javac.code.Symbol; |
44 import com.sun.tools.javac.code.Symbol; |
45 import com.sun.tools.javac.code.Symbol.*; |
45 import com.sun.tools.javac.code.Symbol.*; |
46 import com.sun.tools.javac.code.Type; |
46 import com.sun.tools.javac.code.Type; |
47 import com.sun.tools.javac.code.Type.ClassType; |
47 import com.sun.tools.javac.code.Type.ClassType; |
48 import com.sun.tools.javac.code.TypeTags; |
|
49 |
48 |
50 import com.sun.tools.javac.comp.AttrContext; |
49 import com.sun.tools.javac.comp.AttrContext; |
51 import com.sun.tools.javac.comp.Env; |
50 import com.sun.tools.javac.comp.Env; |
52 |
51 |
53 import com.sun.tools.javac.tree.JCTree; |
52 import com.sun.tools.javac.tree.JCTree; |
61 import com.sun.tools.javac.util.Name; |
60 import com.sun.tools.javac.util.Name; |
62 import com.sun.tools.javac.util.Names; |
61 import com.sun.tools.javac.util.Names; |
63 import com.sun.tools.javac.util.Position; |
62 import com.sun.tools.javac.util.Position; |
64 |
63 |
65 import static com.sun.tools.javac.code.Kinds.*; |
64 import static com.sun.tools.javac.code.Kinds.*; |
|
65 import static com.sun.tools.javac.code.TypeTag.CLASS; |
66 import static com.sun.tools.javac.tree.JCTree.Tag.*; |
66 import static com.sun.tools.javac.tree.JCTree.Tag.*; |
67 |
67 |
68 /** |
68 /** |
69 * Represents a java class and provides access to information |
69 * Represents a java class and provides access to information |
70 * about the class, the class' comment and tags, and the |
70 * about the class, the class' comment and tags, and the |
162 @Override |
162 @Override |
163 public boolean isOrdinaryClass() { |
163 public boolean isOrdinaryClass() { |
164 if (isEnum() || isInterface() || isAnnotationType()) { |
164 if (isEnum() || isInterface() || isAnnotationType()) { |
165 return false; |
165 return false; |
166 } |
166 } |
167 for (Type t = type; t.tag == TypeTags.CLASS; t = env.types.supertype(t)) { |
167 for (Type t = type; t.hasTag(CLASS); t = env.types.supertype(t)) { |
168 if (t.tsym == env.syms.errorType.tsym || |
168 if (t.tsym == env.syms.errorType.tsym || |
169 t.tsym == env.syms.exceptionType.tsym) { |
169 t.tsym == env.syms.exceptionType.tsym) { |
170 return false; |
170 return false; |
171 } |
171 } |
172 } |
172 } |