record Top(Child c1, Child c2) {}
record Child(I x, I y){}
record Wrong(int x) {}
sealed interface I permits A, B {}
final class A implements I {}
final class B implements I {}
public class Test {
void test(Object o, Integer i){
switch (o){
if (o instanceof Child(A a)){ }
if (o instanceof Child(A a, B b)){ }
if (o instanceof Top(Child a, Child(int x, I y))){ }
if (o instanceof Top(Child a, Child(A a, I y))){ }
if (o instanceof Top(Child a, Wrong(int x))){ }
if (i instanceof Wrong(int x)) { }
}
}
}