equal
deleted
inserted
replaced
345 return isAccessible(env, t, false); |
345 return isAccessible(env, t, false); |
346 } |
346 } |
347 |
347 |
348 boolean isAccessible(Env<AttrContext> env, Type t, boolean checkInner) { |
348 boolean isAccessible(Env<AttrContext> env, Type t, boolean checkInner) { |
349 return (t.hasTag(ARRAY)) |
349 return (t.hasTag(ARRAY)) |
350 ? isAccessible(env, types.upperBound(types.elemtype(t))) |
350 ? isAccessible(env, types.cvarUpperBound(types.elemtype(t))) |
351 : isAccessible(env, t.tsym, checkInner); |
351 : isAccessible(env, t.tsym, checkInner); |
352 } |
352 } |
353 |
353 |
354 /** Is symbol accessible as a member of given type in given environment? |
354 /** Is symbol accessible as a member of given type in given environment? |
355 * @param env The current environment. |
355 * @param env The current environment. |
1012 * a type-variable T, it is not true that {@code U(T) <: T}, |
1012 * a type-variable T, it is not true that {@code U(T) <: T}, |
1013 * so we need to guard against that. |
1013 * so we need to guard against that. |
1014 */ |
1014 */ |
1015 private Type U(Type found) { |
1015 private Type U(Type found) { |
1016 return found == pt ? |
1016 return found == pt ? |
1017 found : types.upperBound(found); |
1017 found : types.cvarUpperBound(found); |
1018 } |
1018 } |
1019 |
1019 |
1020 @Override |
1020 @Override |
1021 protected MethodResultInfo dup(Type newPt) { |
1021 protected MethodResultInfo dup(Type newPt) { |
1022 return new MethodResultInfo(newPt, checkContext); |
1022 return new MethodResultInfo(newPt, checkContext); |