@@ -0,0 +1,1275 @@
+package bugIdeas;%0A%0Aimport java.lang.annotation.Documented;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0A%0Aimport javax.annotation.meta.TypeQualifier;%0Aimport javax.annotation.meta.TypeQualifierNickname;%0Aimport javax.annotation.meta.When;%0A%0A%0Apublic class Ideas_2011_09_24 %7B%0A    @Documented%0A    @TypeQualifier(applicableTo = Integer.class)%0A    @Retention(RetentionPolicy.RUNTIME)%0A    public @interface PK %7B%7D%0A%0A%0A@Documented%0A@TypeQualifier(applicableTo = CharSequence.class)%0A@Retention(RetentionPolicy.RUNTIME)%0Apublic @interface SlashedClassName %7B%0A%0A    When when() default When.ALWAYS;%0A%7D%0A%0A@Documented%0A@SlashedClassName(when = When.NEVER)%0A@TypeQualifierNickname%0A@Retention(RetentionPolicy.RUNTIME)%0Apublic @interface DottedClassName %7B%0A%7D%0A    %0A    public boolean badCheck(@SlashedClassName String slashedClassName, @DottedClassName String dottedClassName) %7B%0A        return slashedClassName.equals(dottedClassName);%0A    %7D%0A    %0A    public boolean badCheck2(@SlashedClassName String slashedClassName, @DottedClassName String dottedClassName) %7B%0A        return slashedClassName == dottedClassName;%0A    %7D%0A    %0A    public boolean badCheck(@PK int x) %7B%0A        return x == 5;%0A%0A    %7D%0A    public boolean badCheck2(@PK int x) %7B%0A        return x %3E 5;%0A    %7D%0A%0A%7D%0A

Add test case for comparison of values with incompatible type qualifiers