I don't think Kotlin has fully fledged pattern matching with destructuring yet (like in Java's records) does it?
if (obj instanceof Point(double x, double y)) {
foo(x,y)
}
Kotlin with its smart cast feature lets you do if (obj is Point) {
foo(obj.x, obj.y);
}if (obj instanceof Point p) {
foo(p.x(), p.y());
}