src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java
changeset 47395 2ea4edfdef8e
parent 47216 71c04702a3d5
child 47988 fb0b9913ff7e
equal deleted inserted replaced
47394:c28e2522ac81 47395:2ea4edfdef8e
    59 import com.sun.tools.javac.code.Symbol.ClassSymbol;
    59 import com.sun.tools.javac.code.Symbol.ClassSymbol;
    60 import com.sun.tools.javac.code.Symbol.MethodSymbol;
    60 import com.sun.tools.javac.code.Symbol.MethodSymbol;
    61 import com.sun.tools.javac.code.Symbol.ModuleSymbol;
    61 import com.sun.tools.javac.code.Symbol.ModuleSymbol;
    62 import com.sun.tools.javac.code.Symbol.PackageSymbol;
    62 import com.sun.tools.javac.code.Symbol.PackageSymbol;
    63 import com.sun.tools.javac.code.Symbol.VarSymbol;
    63 import com.sun.tools.javac.code.Symbol.VarSymbol;
       
    64 import com.sun.tools.javac.code.TypeTag;
    64 import com.sun.tools.javac.comp.AttrContext;
    65 import com.sun.tools.javac.comp.AttrContext;
    65 import com.sun.tools.javac.comp.Env;
    66 import com.sun.tools.javac.comp.Env;
    66 import com.sun.tools.javac.model.JavacElements;
    67 import com.sun.tools.javac.model.JavacElements;
    67 import com.sun.tools.javac.model.JavacTypes;
    68 import com.sun.tools.javac.model.JavacTypes;
    68 import com.sun.tools.javac.util.Names;
    69 import com.sun.tools.javac.util.Names;
   281             return null;
   282             return null;
   282         }
   283         }
   283         MethodSymbol sym = (MethodSymbol)method;
   284         MethodSymbol sym = (MethodSymbol)method;
   284         ClassSymbol origin = (ClassSymbol) sym.owner;
   285         ClassSymbol origin = (ClassSymbol) sym.owner;
   285         for (com.sun.tools.javac.code.Type t = toolEnv.getTypes().supertype(origin.type);
   286         for (com.sun.tools.javac.code.Type t = toolEnv.getTypes().supertype(origin.type);
   286                 t.hasTag(com.sun.tools.javac.code.TypeTag.CLASS);
   287                 t.hasTag(TypeTag.CLASS);
   287                 t = toolEnv.getTypes().supertype(t)) {
   288                 t = toolEnv.getTypes().supertype(t)) {
   288             ClassSymbol c = (ClassSymbol) t.tsym;
   289             ClassSymbol c = (ClassSymbol) t.tsym;
   289             for (com.sun.tools.javac.code.Symbol sym2 : c.members().getSymbolsByName(sym.name)) {
   290             for (com.sun.tools.javac.code.Symbol sym2 : c.members().getSymbolsByName(sym.name)) {
   290                 if (sym.overrides(sym2, origin, toolEnv.getTypes(), true)) {
   291                 if (sym.overrides(sym2, origin, toolEnv.getTypes(), true)) {
       
   292                     // Ignore those methods that may be a simple override
       
   293                     // and allow the real API method to be found.
       
   294                     if (sym2.type.hasTag(TypeTag.METHOD) &&
       
   295                             utils.isSimpleOverride((MethodSymbol)sym2)) {
       
   296                         continue;
       
   297                     }
   291                     return t;
   298                     return t;
   292                 }
   299                 }
   293             }
   300             }
   294         }
   301         }
   295         return null;
   302         return null;