fix Issue 11730 - associative array with Nullable!SysTime values: Called `get' on null Nullable!SysTime

When I fixed bug 6178, I internally used `cast(void)exp)` to suppress unexpected "has no side effect" error.

But, `CastExp` always try to resolve alias this of its operand to find most matching type to `void` via `Expression::castTo`. It should be disabled.
Merge pull request #2961 from 9rnsr/fix11730

[REG2.064] Issue 11730 - associative array with Nullable!SysTime values: Called `get' on null Nullable!SysTime
switch case fallthrough is an error, but only enabled with -w
Merge pull request #2965 from rainers/issue11749

fix  Issue 11749 - switch case fallthrough error is enabled with -w, but cannot be made informational warning
Expand macros in lexer
Expand macros in parser
Remove macros in lexer.h
Clean up cutting ifdefs in template.c
Remove a whole bunch of cutting ifdefs
Hack my way across the finish line
Use factory functions instead of calling constructors from the glue layer
Use factory functions to create arrays from the glue layer
Remove SMALLARRAYCAP to match D implementation
Add factory function for TypeTuple to replace disabled call
Add array-less overload of genCfunc to avoid array mangling issues
Build dmd as static libraries on posix
linux64 mangle hacks
Hack around vtable emission problems
Remove no-op dtor from Module
Store RootObjects, not void*