With that new found information you have presented it certainly seems as
though it is a problem with the JDT as opposed to the proxy generator.

It seems to me the best solution would be to fix the JDT rather than fix
up my band-aid solution (which is not entirely correct).

Playing around further I have managed to narrow it down the the
following that produces the problem. The cause of the problem appears to
be in that the I type parameter references the O type parameter.

public class Broken implements EntryPoint {

  static class In<O> {
  }

  static interface Interface {
    <I extends In<O>, O> void method(I in);
  }

  public void onModuleLoad() {
    final Interface impl = new Interface() {
      public void method(final In in) {
      }
    };
  }
}

On 2010/06/03 21:50:06, Lex wrote:
Thanks for the extra detail. I can verify that the given interface
does not
translate correctly. The surprising thing is that this problem was
supposed to
be fixed in JDT 3.4.2, which is exactly the version GWT is using:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=243820

Maybe we aren't really using 3.4.2, or maybe the fix really isn't in
there, or
maybe this is a new instance of that JDT bug. Further investigation is
needed to
see which.

Alternatively, we could generate type parameters. However, it requires
more
development of the patch. One thing is that the bounds on the type
parameters
need to be added. Also, what about type parameters of the enclosing
class? Those
would need to be handled as well. Using erased types means that all
these
questions go away, so it would be great if we can simply upgrade our
version of
the JDT to solve the problem.



http://gwt-code-reviews.appspot.com/575801/show

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to