Both BinaryComparisonOperatorNode and UnaryComparisonOperatorNode have a method called getNegation() with the following code:
/* Keep the compiler happy - this method should never be called.
- We should always be calling the method in a sub-class.
"expected to call getNegation() for subclass " +
Instead of relying on asserts to detect missing method overrides at run-time, we should make the methods abstract so that such errors are detected by the compiler.