This changes unreachable code from a warning presented in the editor to an error. Existing issues mostly revolved around switching on enums. These were fixed by converting the switches to use a default case, leaving the behavior unchanged in case of new values (e.g. from separately-compiled extensions) creeping in.
Other cases had to do with the assert.fail() function, which throws and so shouldn't have anything following it.
Co-authored-by: Maksym Taran <maksym.taran@gmail.com>
Part of #60565
Adds a new `tsconfig.strictNullChecks.json` project that does not emit anything and is only used for enabling strict null checks on a subset of the vscode codebase.
Opt `iterator.ts` into strict null checking.
Fix our build scripts to properly handle `extends`