Index: gwt-2.4.0/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
===================================================================
--- gwt-2.4.0.orig/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java	2011-04-28 15:57:23.000000000 +0200
+++ gwt-2.4.0/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java	2011-08-30 12:46:52.014143804 +0200
@@ -410,7 +410,7 @@
     // Turn off all warnings, saves some memory / speed.
     options.reportUnusedDeclaredThrownExceptionIncludeDocCommentReference = false;
     options.reportUnusedDeclaredThrownExceptionExemptExceptionAndThrowable = false;
-    options.warningThreshold = 0;
+    options.suppressWarnings = true;
     options.inlineJsrBytecode = true;
     return options;
   }
Index: gwt-2.4.0/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
===================================================================
--- gwt-2.4.0.orig/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java	2010-07-29 01:37:27.000000000 +0200
+++ gwt-2.4.0/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java	2011-08-30 12:46:52.014143804 +0200
@@ -126,7 +126,7 @@
 			break;
 			
 		case Binding.TYPE_PARAMETER :
-			((TypeVariableBinding) type).resolve(environment);
+			((TypeVariableBinding) type).resolve();
 			break;
 						
 		case Binding.GENERIC_TYPE :
@@ -595,7 +595,7 @@
 						pendingVariable = false;
 						int colon = CharOperation.indexOf(':', typeSignature, i);
 						char[] variableName = CharOperation.subarray(typeSignature, i, colon);
-						variables.add(new TypeVariableBinding(variableName, this, rank++));
+						variables.add(new TypeVariableBinding(variableName, this, rank++, this.environment));
 					}
 			}
 		}
@@ -793,7 +793,7 @@
 // NOTE: member types of binary types are resolved when needed
 public TypeVariableBinding getTypeVariable(char[] variableName) {
 	TypeVariableBinding variable = super.getTypeVariable(variableName);
-	variable.resolve(this.environment);
+	variable.resolve();
 	return variable;
 }
 private void initializeTypeVariable(TypeVariableBinding variable, TypeVariableBinding[] existingVariables, SignatureWrapper wrapper, char[][][] missingTypeNames) {
@@ -932,7 +932,7 @@
 		}
 	}
 	for (int i = method.typeVariables.length; --i >= 0;) {
-		method.typeVariables[i].resolve(this.environment);
+		method.typeVariables[i].resolve();
 	}
 	method.modifiers &= ~ExtraCompilerModifiers.AccUnresolved;
 	return method;
@@ -981,7 +981,7 @@
 		return this.typeVariables;
 
  	for (int i = this.typeVariables.length; --i >= 0;)
-		this.typeVariables[i].resolve(this.environment);
+		this.typeVariables[i].resolve();
 	this.tagBits &= ~TagBits.HasUnresolvedTypeVariables;
 	return this.typeVariables;
 }
Index: gwt-2.4.0/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java
===================================================================
--- gwt-2.4.0.orig/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java	2011-01-06 15:20:30.000000000 +0100
+++ gwt-2.4.0/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/MethodBinding.java	2011-08-30 12:46:52.054141836 +0200
@@ -736,7 +736,7 @@
   this.declaringClass.storeAnnotations(this, annotations);
 }
 public void setAnnotations(AnnotationBinding[] annotations, AnnotationBinding[][] parameterAnnotations, Object defaultValue) {
-  this.declaringClass.storeAnnotationHolder(this,  AnnotationHolder.storeAnnotations(annotations, parameterAnnotations, defaultValue));
+  this.declaringClass.storeAnnotationHolder(this,  AnnotationHolder.storeAnnotations(annotations, parameterAnnotations, defaultValue, null));
 }
 public void setDefaultValue(Object defaultValue) {
   MethodBinding originalMethod = this.original();
@@ -851,7 +851,7 @@
  */
 public final char[] signature(ClassFile classFile) {
   if (signature != null) {
-    if ((this.tagBits & TagBits.ContainsNestedTypesInSignature) != 0) {
+    if ((this.tagBits & TagBits.ContainsNestedTypeReferences) != 0) {
       // we need to record inner classes references
       boolean isConstructor = isConstructor();
       TypeBinding[] targetParameters = this.parameters;
@@ -918,7 +918,7 @@
       for (int i = 0, count = syntheticArgumentTypes.length; i < count; i++) {
         ReferenceBinding syntheticArgumentType = syntheticArgumentTypes[i];
         if (syntheticArgumentType.isNestedType()) {
-          this.tagBits |= TagBits.ContainsNestedTypesInSignature;
+          this.tagBits |= TagBits.ContainsNestedTypeReferences;
           classFile.recordInnerClasses(syntheticArgumentType);
         }
         buffer.append(syntheticArgumentType.signature());
@@ -935,7 +935,7 @@
       TypeBinding targetParameter = targetParameters[i];
       TypeBinding leafTargetParameterType = targetParameter.leafComponentType();
       if (leafTargetParameterType.isNestedType()) {
-        this.tagBits |= TagBits.ContainsNestedTypesInSignature;
+        this.tagBits |= TagBits.ContainsNestedTypeReferences;
         classFile.recordInnerClasses(leafTargetParameterType);
       }
       buffer.append(targetParameter.signature());
@@ -952,7 +952,7 @@
       TypeBinding parameter = parameters[i];
       TypeBinding leafParameterType = parameter.leafComponentType();
       if (leafParameterType.isNestedType()) {
-        this.tagBits |= TagBits.ContainsNestedTypesInSignature;
+        this.tagBits |= TagBits.ContainsNestedTypeReferences;
         classFile.recordInnerClasses(leafParameterType);
       }
       buffer.append(parameter.signature());
@@ -962,7 +962,7 @@
   if (this.returnType != null) {
     TypeBinding ret = this.returnType.leafComponentType();
     if (ret.isNestedType()) {
-      this.tagBits |= TagBits.ContainsNestedTypesInSignature;
+      this.tagBits |= TagBits.ContainsNestedTypeReferences;
       classFile.recordInnerClasses(ret);
     }
     buffer.append(this.returnType.signature());
Index: gwt-2.4.0/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java
===================================================================
--- gwt-2.4.0.orig/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java	2009-10-28 17:10:53.000000000 +0100
+++ gwt-2.4.0/dev/core/src/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java	2011-08-30 12:46:52.054141836 +0200
@@ -366,12 +366,12 @@
   SyntheticMethodBinding accessMethod = null;
   SyntheticMethodBinding[] accessors = (SyntheticMethodBinding[]) this.synthetics[SourceTypeBinding.METHOD_EMUL].get(targetField);
   if (accessors == null) {
-    accessMethod = new SyntheticMethodBinding(targetField, isReadAccess, this);
+    accessMethod = new SyntheticMethodBinding(targetField, isReadAccess, false, this);
     this.synthetics[SourceTypeBinding.METHOD_EMUL].put(targetField, accessors = new SyntheticMethodBinding[2]);
     accessors[isReadAccess ? 0 : 1] = accessMethod;   
   } else {
     if ((accessMethod = accessors[isReadAccess ? 0 : 1]) == null) {
-      accessMethod = new SyntheticMethodBinding(targetField, isReadAccess, this);
+      accessMethod = new SyntheticMethodBinding(targetField, isReadAccess, false, this);
       accessors[isReadAccess ? 0 : 1] = accessMethod;
     }
   }
