// Test case for Issue 384: // https://github.com/typetools/checker-framework/issues/384 // TODO: no longer crashes, but still need to ensure annotations // are stored correctly. import org.checkerframework.checker.guieffect.qual.PolyUIType; import org.checkerframework.checker.nullness.qual.NonNull; abstract class UnionTypeBug { void method() { try { badBoy(); } catch (@NonNull InnerException1 | @NonNull InnerException2 e) { } catch (@NonNull InnerException3 | @NonNull InnerException4 e) { } } abstract void badBoy() throws InnerException1, InnerException2, InnerException3, InnerException4; @PolyUIType class InnerException1 extends Exception {} @PolyUIType class InnerException2 extends Exception {} @PolyUIType class InnerException3 extends Exception {} @PolyUIType class InnerException4 extends Exception {} }