Thanks, good catch.
The lack of console output is expected because both comparisons evaluate to False, so neither If block runs. However, you’re right that Objo should catch this earlier: comparing statically incompatible types like Integer = String or String = Integer is never meaningful.
I’ve fixed this in the compiler. These now produce type-checking errors, while valid cases such as Integer/Double, Nothing equality, enum comparisons, Object-typed dynamic comparisons, and custom operator overloads still work.
This will be in the next release: https://feedback.objo.dev/bug/570