< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java
Print this page
*** 799,809 ****
return rs.resolveInternalMethod(pos, attrEnv, qual, name, args, List.nil());
}
/** Anon inner classes are used as access constructor tags.
* accessConstructorTag will use an existing anon class if one is available,
! * and synthethise a class (with makeEmptyClass) if one is not available.
* However, there is a small possibility that an existing class will not
* be generated as expected if it is inside a conditional with a constant
* expression. If that is found to be the case, create an empty class tree here.
*/
private void checkAccessConstructorTags() {
--- 799,809 ----
return rs.resolveInternalMethod(pos, attrEnv, qual, name, args, List.nil());
}
/** Anon inner classes are used as access constructor tags.
* accessConstructorTag will use an existing anon class if one is available,
! * and synthesize a class (with makeEmptyClass) if one is not available.
* However, there is a small possibility that an existing class will not
* be generated as expected if it is inside a conditional with a constant
* expression. If that is found to be the case, create an empty class tree here.
*/
private void checkAccessConstructorTags() {
*** 1335,1345 ****
args = make.Idents(md.params);
} else {
JCExpression site = make.Ident(md.params.head);
if (acode % 2 != 0) {
//odd access codes represent qualified super accesses - need to
! //emit reference to the direct superclass, even if the refered
//member is from an indirect superclass (JLS 13.1)
site.setType(types.erasure(types.supertype(vsym.owner.enclClass().type)));
}
ref = make.Select(site, sym);
args = make.Idents(md.params.tail);
--- 1335,1345 ----
args = make.Idents(md.params);
} else {
JCExpression site = make.Ident(md.params.head);
if (acode % 2 != 0) {
//odd access codes represent qualified super accesses - need to
! //emit reference to the direct superclass, even if the referred
//member is from an indirect superclass (JLS 13.1)
site.setType(types.erasure(types.supertype(vsym.owner.enclClass().type)));
}
ref = make.Select(site, sym);
args = make.Idents(md.params.tail);
< prev index next >