langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java
changeset 7637 467bc8fc514e
parent 7635 e0a3aeefe4e7
child 7643 a067a0cda531
equal deleted inserted replaced
7636:030f141aa32b 7637:467bc8fc514e
   195                     isInnerSubClass(env.enclClass.sym, c.owner);
   195                     isInnerSubClass(env.enclClass.sym, c.owner);
   196                 break;
   196                 break;
   197         }
   197         }
   198         return (checkInner == false || c.type.getEnclosingType() == Type.noType) ?
   198         return (checkInner == false || c.type.getEnclosingType() == Type.noType) ?
   199             isAccessible :
   199             isAccessible :
   200             isAccessible & isAccessible(env, c.type.getEnclosingType(), checkInner);
   200             isAccessible && isAccessible(env, c.type.getEnclosingType(), checkInner);
   201     }
   201     }
   202     //where
   202     //where
   203         /** Is given class a subclass of given base class, or an inner class
   203         /** Is given class a subclass of given base class, or an inner class
   204          *  of a subclass?
   204          *  of a subclass?
   205          *  Return null if no such class exists.
   205          *  Return null if no such class exists.
   232     public boolean isAccessible(Env<AttrContext> env, Type site, Symbol sym) {
   232     public boolean isAccessible(Env<AttrContext> env, Type site, Symbol sym) {
   233         return isAccessible(env, site, sym, false);
   233         return isAccessible(env, site, sym, false);
   234     }
   234     }
   235     public boolean isAccessible(Env<AttrContext> env, Type site, Symbol sym, boolean checkInner) {
   235     public boolean isAccessible(Env<AttrContext> env, Type site, Symbol sym, boolean checkInner) {
   236         if (sym.name == names.init && sym.owner != site.tsym) return false;
   236         if (sym.name == names.init && sym.owner != site.tsym) return false;
   237         ClassSymbol sub;
       
   238         switch ((short)(sym.flags() & AccessFlags)) {
   237         switch ((short)(sym.flags() & AccessFlags)) {
   239         case PRIVATE:
   238         case PRIVATE:
   240             return
   239             return
   241                 (env.enclClass.sym == sym.owner // fast special case
   240                 (env.enclClass.sym == sym.owner // fast special case
   242                  ||
   241                  ||