$ javac broken/WalletNotHandled.java     (21.0.10+7-Ubuntu-124.04)
broken/WalletNotHandled.java:10: error: the switch expression does not cover all possible input values
        return switch (p) {
               ^
1 error

$ javac broken/WalletNotHandled.java     (25.0.4.1+1-LTS)
broken/WalletNotHandled.java:10: error: the switch expression does not cover all possible input values
        return switch (p) {
               ^
1 error

$ javac broken/WalletNotHandled.java     (27+35)
broken/WalletNotHandled.java:10: error: the switch expression does not cover all possible input values
        return switch (p) {
               ^
  missing patterns:
      Wallet _
1 error

$ javac broken/NotPermitted.java     (21.0.10+7-Ubuntu-124.04)
broken/NotPermitted.java:5: error: class is not allowed to extend sealed class: Payment (as it is not listed in its 'permits' clause)
    record Cheque(long amount) implements Payment {}      // not in the permits clause
    ^
1 error

$ javac broken/NotPermitted.java     (25.0.4.1+1-LTS)
broken/NotPermitted.java:5: error: class is not allowed to extend sealed class: Payment (as it is not listed in its 'permits' clause)
    record Cheque(long amount) implements Payment {}      // not in the permits clause
    ^
1 error

$ javac broken/NotPermitted.java     (27+35)
broken/NotPermitted.java:5: error: class is not allowed to extend sealed class: Payment (as it is not listed in its 'permits' clause)
    record Cheque(long amount) implements Payment {}      // not in the permits clause
    ^
1 error

$ javac broken/MissingModifier.java     (21.0.10+7-Ubuntu-124.04)
broken/MissingModifier.java:3: error: sealed, non-sealed or final modifiers expected
    class Card implements Payment {}                      // must say final, sealed or non-sealed
    ^
1 error

$ javac broken/MissingModifier.java     (25.0.4.1+1-LTS)
broken/MissingModifier.java:3: error: sealed, non-sealed or final modifiers expected
    class Card implements Payment {}                      // must say final, sealed or non-sealed
    ^
1 error

$ javac broken/MissingModifier.java     (27+35)
broken/MissingModifier.java:3: error: sealed, non-sealed or final modifiers expected
    class Card implements Payment {}                      // must say final, sealed or non-sealed
    ^
1 error

$ javac broken/NoSubclass.java     (21.0.10+7-Ubuntu-124.04)
broken/NoSubclass.java:2: error: sealed class must have subclasses
    sealed interface Payment {}                           // no permits clause and no subtype in this file
           ^
1 error

$ javac broken/NoSubclass.java     (25.0.4.1+1-LTS)
broken/NoSubclass.java:2: error: sealed class must have subclasses
    sealed interface Payment {}                           // no permits clause and no subtype in this file
           ^
1 error

$ javac broken/NoSubclass.java     (27+35)
broken/NoSubclass.java:2: error: sealed class must have subclasses
    sealed interface Payment {}                           // no permits clause and no subtype in this file
           ^
1 error

$ javac broken/NonSealedWrongPlace.java     (21.0.10+7-Ubuntu-124.04)
broken/NonSealedWrongPlace.java:3: error: non-sealed modifier not allowed here
    non-sealed class Oops implements Plain {}             // non-sealed only makes sense under a sealed supertype
               ^
  (class NonSealedWrongPlace.Oops does not have any sealed supertypes)
1 error

$ javac broken/NonSealedWrongPlace.java     (25.0.4.1+1-LTS)
broken/NonSealedWrongPlace.java:3: error: non-sealed modifier not allowed here
    non-sealed class Oops implements Plain {}             // non-sealed only makes sense under a sealed supertype
               ^
  (class NonSealedWrongPlace.Oops does not have any sealed supertypes)
1 error

$ javac broken/NonSealedWrongPlace.java     (27+35)
broken/NonSealedWrongPlace.java:3: error: non-sealed modifier not allowed here
    non-sealed class Oops implements Plain {}             // non-sealed only makes sense under a sealed supertype
               ^
  (class NonSealedWrongPlace.Oops does not have any sealed supertypes)
1 error

$ javac broken/AnonymousSealed.java     (21.0.10+7-Ubuntu-124.04)
broken/AnonymousSealed.java:5: error: anonymous classes must not extend sealed classes
        return new Payment() {};                          // an anonymous class is a subtype nobody listed
                             ^
1 error

$ javac broken/AnonymousSealed.java     (25.0.4.1+1-LTS)
broken/AnonymousSealed.java:5: error: anonymous classes must not extend sealed classes
        return new Payment() {};                          // an anonymous class is a subtype nobody listed
                             ^
1 error

$ javac broken/AnonymousSealed.java     (27+35)
broken/AnonymousSealed.java:5: error: anonymous classes must not extend sealed classes
        return new Payment() {};                          // an anonymous class is a subtype nobody listed
                             ^
1 error

$ javac broken/xpkg/a/Base.java broken/xpkg/b/Impl.java     (21.0.10+7-Ubuntu-124.04)
broken/xpkg/a/Base.java:2: error: class Base in unnamed module cannot extend a sealed class in a different package
public sealed interface Base permits b.Impl {}
                                      ^
1 error

$ javac broken/xpkg/a/Base.java broken/xpkg/b/Impl.java     (25.0.4.1+1-LTS)
broken/xpkg/a/Base.java:2: error: class Base in unnamed module cannot extend a sealed class in a different package
public sealed interface Base permits b.Impl {}
                                      ^
1 error

$ javac broken/xpkg/a/Base.java broken/xpkg/b/Impl.java     (27+35)
broken/xpkg/a/Base.java:2: error: class Base in unnamed module cannot extend a sealed class in a different package
public sealed interface Base permits b.Impl {}
                                      ^
1 error
