29 |
29 |
30 import com.sun.javadoc.*; |
30 import com.sun.javadoc.*; |
31 import com.sun.tools.javac.code.*; |
31 import com.sun.tools.javac.code.*; |
32 import com.sun.tools.javac.code.Symbol.*; |
32 import com.sun.tools.javac.code.Symbol.*; |
33 import com.sun.tools.javac.code.Type; |
33 import com.sun.tools.javac.code.Type; |
34 import com.sun.tools.javac.code.TypeTags; |
|
35 import com.sun.tools.javac.tree.JCTree.JCMethodDecl; |
34 import com.sun.tools.javac.tree.JCTree.JCMethodDecl; |
36 import com.sun.tools.javac.util.Position; |
35 import com.sun.tools.javac.util.Position; |
|
36 |
|
37 import static com.sun.tools.javac.code.TypeTag.CLASS; |
37 |
38 |
38 /** |
39 /** |
39 * Represents a method of a java class. |
40 * Represents a method of a java class. |
40 * |
41 * |
41 * <p><b>This is NOT part of any supported API. |
42 * <p><b>This is NOT part of any supported API. |
127 return null; |
128 return null; |
128 } |
129 } |
129 |
130 |
130 ClassSymbol origin = (ClassSymbol)sym.owner; |
131 ClassSymbol origin = (ClassSymbol)sym.owner; |
131 for (Type t = env.types.supertype(origin.type); |
132 for (Type t = env.types.supertype(origin.type); |
132 t.tag == TypeTags.CLASS; |
133 t.hasTag(CLASS); |
133 t = env.types.supertype(t)) { |
134 t = env.types.supertype(t)) { |
134 ClassSymbol c = (ClassSymbol)t.tsym; |
135 ClassSymbol c = (ClassSymbol)t.tsym; |
135 for (Scope.Entry e = c.members().lookup(sym.name); e.scope != null; e = e.next()) { |
136 for (Scope.Entry e = c.members().lookup(sym.name); e.scope != null; e = e.next()) { |
136 if (sym.overrides(e.sym, origin, env.types, true)) { |
137 if (sym.overrides(e.sym, origin, env.types, true)) { |
137 return TypeMaker.getType(env, t); |
138 return TypeMaker.getType(env, t); |
159 |
160 |
160 // Derived from com.sun.tools.javac.comp.Check.checkOverride . |
161 // Derived from com.sun.tools.javac.comp.Check.checkOverride . |
161 |
162 |
162 ClassSymbol origin = (ClassSymbol)sym.owner; |
163 ClassSymbol origin = (ClassSymbol)sym.owner; |
163 for (Type t = env.types.supertype(origin.type); |
164 for (Type t = env.types.supertype(origin.type); |
164 t.tag == TypeTags.CLASS; |
165 t.hasTag(CLASS); |
165 t = env.types.supertype(t)) { |
166 t = env.types.supertype(t)) { |
166 ClassSymbol c = (ClassSymbol)t.tsym; |
167 ClassSymbol c = (ClassSymbol)t.tsym; |
167 for (Scope.Entry e = c.members().lookup(sym.name); e.scope != null; e = e.next()) { |
168 for (Scope.Entry e = c.members().lookup(sym.name); e.scope != null; e = e.next()) { |
168 if (sym.overrides(e.sym, origin, env.types, true)) { |
169 if (sym.overrides(e.sym, origin, env.types, true)) { |
169 return env.getMethodDoc((MethodSymbol)e.sym); |
170 return env.getMethodDoc((MethodSymbol)e.sym); |