Buggy code:
public class ParameterizedTypeBinding extends ReferenceBinding implements Substitution { public ReferenceBinding type ; public TypeBinding [ ] arguments ; public LookupEnvironment environment ; public char [ ] genericTypeSignature ; public ReferenceBinding superclass ; public ReferenceBinding [ ] superInterfaces ; public FieldBinding [ ] fields ; public ReferenceBinding [ ] memberTypes ; public MethodBinding [ ] methods ; private ReferenceBinding enclosingType ; public ParameterizedTypeBinding ( ReferenceBinding type , TypeBinding [ ] arguments , ReferenceBinding enclosingType , LookupEnvironment environment ) { } public void boundCheck ( Scope scope , TypeReference [ ] argumentReferences ) { } public boolean canBeInstantiated ( ) { } public int kind ( ) { } public TypeBinding capture ( Scope scope , int position ) { } public void collectSubstitutes ( Scope scope , TypeBinding actualType , InferenceContext inferenceContext , int constraint ) { } public void computeId ( ) { } public char [ ] computeUniqueKey ( boolean isLeaf ) { } public char [ ] constantPoolName ( ) { } public ParameterizedMethodBinding createParameterizedMethod ( MethodBinding originalMethod ) { } public String debugName ( ) { } public ReferenceBinding enclosingType ( ) { } public LookupEnvironment environment ( ) { } public TypeBinding erasure ( ) { } public int fieldCount ( ) { } public FieldBinding [ ] fields ( ) { } public char [ ] genericTypeSignature ( ) { } public long getAnnotationTagBits ( ) { } public MethodBinding getExactConstructor ( TypeBinding [ ] argumentTypes ) { } public MethodBinding getExactMethod ( char [ ] selector , TypeBinding [ ] argumentTypes , CompilationUnitScope refScope ) { } public FieldBinding getField ( char [ ] fieldName , boolean needResolve ) { } public ReferenceBinding getMemberType ( char [ ] typeName ) { } public MethodBinding [ ] getMethods ( char [ ] selector ) { } public boolean hasMemberTypes ( ) { } public boolean implementsMethod ( MethodBinding method ) { } void initialize ( ReferenceBinding someType , TypeBinding [ ] someArguments ) { this . type = someType ; this . sourceName = someType . sourceName ; this . compoundName = someType . compoundName ; this . fPackage = someType . fPackage ; this . fileName = someType . fileName ; <START_BUG> this . modifiers = someType . modifiers ; <END_BUG> if ( someArguments != null ) { this . modifiers |= ExtraCompilerModifiers . AccGenericSignature ; } else if ( ( this . enclosingType ) != null ) { this . modifiers |= ( this . enclosingType . modifiers ) & ( ExtraCompilerModifiers . AccGenericSignature ) ; this . tagBits |= ( this . enclosingType . tagBits ) & ( TagBits . HasTypeVariable ) ; } if ( someArguments != null ) { this . arguments = someArguments ; for ( int i = 0 , length = someArguments . length ; i < length ; i ++ ) { TypeBinding someArgument = someArguments [ i ] ; boolean isWildcardArgument = someArgument . isWildcard ( ) ; if ( isWildcardArgument ) { this . tagBits |= TagBits . HasDirectWildcard ; } if ( ( ! isWildcardArgument ) || ( ( ( ( WildcardBinding ) ( someArgument ) ) . boundKind ) != ( Wildcard . UNBOUND ) ) ) { this . tagBits |= TagBits . IsBoundParameterizedType ; } this . tagBits |= ( someArgument . tagBits ) & ( TagBits . HasTypeVariable ) ; } } this . tagBits |= ( someType . tagBits ) & ( ( ( TagBits . IsLocalType ) | ( TagBits . IsMemberType ) ) | ( TagBits . IsNestedType ) ) ; this . tagBits &= ~ ( ( TagBits . AreFieldsComplete ) | ( TagBits . AreMethodsComplete ) ) ; } protected void initializeArguments ( ) { } public boolean isEquivalentTo ( TypeBinding otherType ) { } public boolean isIntersectingWith ( TypeBinding otherType ) { } public boolean isParameterizedType ( ) { } public boolean isRawSubstitution ( ) { } public ReferenceBinding [ ] memberTypes ( ) { } public MethodBinding [ ] methods ( ) { } public char [ ] qualifiedSourceName ( ) { } public char [ ] readableName ( ) { } ReferenceBinding resolve ( ) { } public char [ ] shortReadableName ( ) { } public char [ ] signature ( ) { } public char [ ] sourceName ( ) { } public TypeBinding substitute ( TypeVariableBinding originalVariable ) { } public ReferenceBinding superclass ( ) { } public ReferenceBinding [ ] superInterfaces ( ) { } public void swapUnresolved ( UnresolvedReferenceBinding unresolvedType , ReferenceBinding resolvedType , LookupEnvironment env ) { } public ReferenceBinding [ ] syntheticEnclosingInstanceTypes ( ) { } public SyntheticArgumentBinding [ ] syntheticOuterLocalVariables ( ) { } public char [ ] qualifiedPackageName ( ) { } public String toString ( ) { } public TypeVariableBinding [ ] typeVariables ( ) { } }

Fix:
this . modifiers = ( someType . modifiers ) & ( ~ ( ExtraCompilerModifiers . AccGenericSignature ) ) ;