< prev index next > src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java
Print this page
void addBridgeIfNeeded(DiagnosticPosition pos,
Symbol sym,
ClassSymbol origin,
ListBuffer<JCTree> bridges) {
if (sym.kind == MTH &&
! sym.name != names.init &&
(sym.flags() & (PRIVATE | STATIC)) == 0 &&
(sym.flags() & SYNTHETIC) != SYNTHETIC &&
sym.isMemberOf(origin, types)) {
MethodSymbol meth = (MethodSymbol)sym;
MethodSymbol bridge = meth.binaryImplementation(origin, types);
void addBridgeIfNeeded(DiagnosticPosition pos,
Symbol sym,
ClassSymbol origin,
ListBuffer<JCTree> bridges) {
if (sym.kind == MTH &&
! !names.isInitOrVNew(sym.name) &&
(sym.flags() & (PRIVATE | STATIC)) == 0 &&
(sym.flags() & SYNTHETIC) != SYNTHETIC &&
sym.isMemberOf(origin, types)) {
MethodSymbol meth = (MethodSymbol)sym;
MethodSymbol bridge = meth.binaryImplementation(origin, types);
tree.cond = translate(tree.cond, syms.booleanType);
tree.body = translate(tree.body);
result = tree;
}
+ public void visitWithField(JCWithField tree) {
+ tree.field = translate(tree.field, null);
+ tree.value = translate(tree.value, erasure(tree.field.type));
+ tree.type = erasure(tree.type);
+ result = retype(tree, tree.type, pt);
+ }
+
public void visitForLoop(JCForLoop tree) {
tree.init = translate(tree.init, null);
if (tree.cond != null)
tree.cond = translate(tree.cond, syms.booleanType);
tree.step = translate(tree.step, null);
Type mt = meth.erasure(types);
boolean useInstantiatedPtArgs = !types.isSignaturePolymorphic((MethodSymbol)meth.baseSymbol());
List<Type> argtypes = useInstantiatedPtArgs ?
tree.meth.type.getParameterTypes() :
mt.getParameterTypes();
+ // TODO - is enum so <init>
if (meth.name == names.init && meth.owner == syms.enumSym)
argtypes = argtypes.tail.tail;
if (tree.varargsElement != null)
tree.varargsElement = types.erasure(tree.varargsElement);
else
< prev index next >