// Sí compila, y ese es el problema: con default, el compilador no avisa que falta Triangle.
public class ChainNoWarning {
    static double area(Shape s) {
        return switch (s) {
            case Circle(double r) -> Math.PI * r * r;
            case Square(double side) -> side * side;
            default -> 0;
        };
    }
}
