I've found an interesting error in GWT 1.5.3:

      [ERROR] Line 14: Type mismatch: cannot convert from Test.Parametric.Number
s to Test.Parametric<T>.Numbers
      [ERROR] Line 17: Type mismatch: cannot convert from Test.Parametric.Number
s to Test.Parametric<T>.Numbers
Compiling module test.Test
Computing all possible rebind results for 'test.client.Test'
   Rebinding test.client.Test
      Checking rule <generate-with class='com.google.gwt.user.rebind.ui.ImageBun
dleGenerator'/>
         [ERROR] Unable to find type 'test.client.Test'
            [ERROR] Hint: Previous compiler errors may have made this type unava
ilable
            [ERROR] Hint: Check the inheritance chain from your module; it may n
ot be inheriting a required module or a module may not be adding its source path
 entries properly


To reproduce:

public class Test implements EntryPoint {
  static class Parametric<T> {
    enum Numbers {
      ONE, TWO;
    }
  }

  public void onModuleLoad() {
    switch (Parametric.Numbers.valueOf("ONE")) {
      case ONE: // Line 14
        System.out.println("ONE");
        break;
      case TWO: // Line 17
        System.out.println("ONE");
        break;
    }
  }
}

Removing the parameter from the type enclosing the enum fixes the problem.

The above *works* in trunk and 1.6, but I searched a little bit and I
couldn't find anything in the issue tracker that appeared related.
Upgrading to 1.6/trunk isn't a good option for me at the moment, so
I'm hoping that someone has seen this before and could help me find
the change that fixed it. If it's a simple patch, I can apply it to
1.5.3 until such time as an upgrade is possible. Moving the enum to a
non-parameterized type would probably work as well, but I'm loathe to
do too much redesign on account of a compiler bug that appears to
already have been fixed.

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

Reply via email to