Even better.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2346 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java b/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java
index d885bf1..526f45d 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/TypeOracleBuilder.java
@@ -1063,7 +1063,6 @@
     cacheManager.setTypeForBinding(binding, jrealClassType);
   }
 
-  @SuppressWarnings("unchecked")
   private boolean resolveAnnotation(
       TreeLogger logger,
       Annotation jannotation,
@@ -1075,9 +1074,8 @@
 
     // Determine the annotation class
     TypeBinding resolvedType = jannotation.resolvedType;
-    Class<? extends java.lang.annotation.Annotation> clazz = (Class<? extends java.lang.annotation.Annotation>) getClassLiteral(
-        logger, resolvedType);
-    if (clazz == null) {
+    Class<?> classLiteral = getClassLiteral(logger, resolvedType);
+    if (classLiteral == null) {
       return false;
     }
 
@@ -1087,6 +1085,7 @@
       return false;
     }
 
+    Class<? extends java.lang.annotation.Annotation> clazz = classLiteral.asSubclass(java.lang.annotation.Annotation.class);
     declaredAnnotations.put(clazz, annotation);
     return true;
   }