import org.checkerframework.checker.guieffect.qual.PolyUIEffect;
import org.checkerframework.checker.guieffect.qual.PolyUIType;
import org.checkerframework.checker.guieffect.qual.UI;
import org.checkerframework.checker.guieffect.qual.UIEffect;
import org.checkerframework.checker.guieffect.qual.UIType;
public class AnonInnerDefaults {
public static interface SafeIface {
public void doStuff();
}
public static interface ExplicitUIIface {
@UIEffect
public void doStuff();
}
@UIType
public static interface UITypeIface {
public void doStuff();
}
@PolyUIType
public static interface PolyIface {
@PolyUIEffect
public void doStuff();
}
@UIEffect
public void tryStuff(final UIElement e) {
SafeIface s =
new SafeIface() {
@Override
public void doStuff() {
//:: error: (call.invalid.ui)
e.dangerous();
}
};
ExplicitUIIface ex =
new ExplicitUIIface() {
@Override
public void doStuff() {
e.dangerous(); // should be okay
}
};
UITypeIface u =
new UITypeIface() {
@Override
public void doStuff() {
e.dangerous(); // should be okay
}
};
@UI PolyIface p =
new @UI PolyIface() {
@Override
public void doStuff() {
e.dangerous(); // should be okay
}
};
PolyIface p2 =
new PolyIface() {
@Override
public void doStuff() {
//:: error: (call.invalid.ui)
e.dangerous(); // should be okay
}
};
}
}