This way caller don't need to first check if the symbol is allowed to
override. The current API throws for cases like Java field, or enum
entry, which is not very user-friendly.
This is useful for quickfixes offering casts. We don't want to offer
user to cast incompatible types.
Also, explicitly allow compare to `Nothing` and handle `Nothing` from intersection