Closed
Description
NoneTyp
is special cased in a lot of places, but—with strict optional—for the most part it behaves like a normal Instance
type (and the special casing has to recreate that behavior). If we started tracking the truthiness of objects (see #1698), I think we could get rid of the vast majority of NoneTyp
's special casing. (The only thing that I can think of that would remain its role in partial types.) This would make the code easier to reason about, and would have prevented some of the strict optional bugs we've seen so far.