< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java

Print this page
*** 320,11 ***
      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);
--- 320,11 ---
      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);

*** 500,10 ***
--- 500,17 ---
          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);

*** 668,10 ***
--- 675,11 ---
          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 >