Это не решение какой-либо конкретной проблемы. Просто вопрос компилятора.
Почему следующий код не приводит к ошибке компиляции? Он сравнивает ссылочный тип с примитивным типом. И нуль, и ложь должны интерпретироваться во что-то для компилятора, чтобы делать сравнение. Или синтаксический анализатор просто сканирует такой шаблон и заменяет его на false?
if(null == false) { }