src/share/classes/com/sun/tools/javac/comp/Resolve.java

changeset 789
878c8f760ded
parent 787
b1c98bfd4709
child 795
7b99f98b3035
equal deleted inserted replaced
788:8ec3a824f925 789:878c8f760ded
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 ||

mercurial