Fixed a compiler bug that was preventing overrides with generic params from working. Committing a parameterized AsyncCallback. git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1409 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java index 71bd9f4..7c9727c 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java +++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
@@ -1787,22 +1787,6 @@ } } - private boolean areParametersIdentical(MethodBinding a, MethodBinding b) { - TypeBinding[] params1 = a.parameters; - TypeBinding[] params2 = b.parameters; - if (params1.length != params2.length) { - return false; - } - - for (int i = 0; i < params1.length; ++i) { - if (params1[i] != params2[i]) { - return false; - } - } - - return true; - } - private JLocalDeclarationStatement createLocalDeclaration(SourceInfo info, JLocal arrayVar, JExpression value) { return new JLocalDeclarationStatement(program, info, new JLocalRef( @@ -2160,14 +2144,12 @@ // See if this class has any uprefs, unless this class is myself if (binding.declaringClass != searchThisType) { - MethodBinding result = searchThisType.getExactMethod(binding.selector, - binding.parameters, null); - - if (result != null) { - if (areParametersIdentical(binding, result)) { - JMethod upRef = (JMethod) typeMap.get(result); + for (MethodBinding tryMethod : searchThisType.getMethods(binding.selector)) { + if (binding.areParameterErasuresEqual(tryMethod)) { + JMethod upRef = (JMethod) typeMap.get(tryMethod); if (!method.overrides.contains(upRef)) { method.overrides.add(upRef); + break; } } }
diff --git a/samples/dynatable/src/com/google/gwt/sample/dynatable/client/SchoolCalendarServiceAsync.java b/samples/dynatable/src/com/google/gwt/sample/dynatable/client/SchoolCalendarServiceAsync.java index 1d3210d..b165117 100644 --- a/samples/dynatable/src/com/google/gwt/sample/dynatable/client/SchoolCalendarServiceAsync.java +++ b/samples/dynatable/src/com/google/gwt/sample/dynatable/client/SchoolCalendarServiceAsync.java
@@ -19,7 +19,7 @@ /** * The interface for the RPC server endpoint that provides school calendar - * information for clients that will be calling aysychronously. + * information for clients that will be calling asynchronously. */ public interface SchoolCalendarServiceAsync {
diff --git a/user/src/com/google/gwt/user/client/rpc/AsyncCallback.java b/user/src/com/google/gwt/user/client/rpc/AsyncCallback.java index 2f05dda..ee958d6 100644 --- a/user/src/com/google/gwt/user/client/rpc/AsyncCallback.java +++ b/user/src/com/google/gwt/user/client/rpc/AsyncCallback.java
@@ -81,8 +81,10 @@ * </pre> * * </p> + * + * @param <T> */ -public interface AsyncCallback { +public interface AsyncCallback<T> { /** * Called when an asynchronous call fails to complete normally. @@ -108,5 +110,5 @@ * the parameter will be the boxed version of the primitive (for example, an * <code>int</code> return type becomes an {@link Integer}. */ - void onSuccess(Object result); + void onSuccess(T result); }