Merge pull request #1908 from donc/d1_ctfe_sixbugs

D1 ONLY: Merge six CTFE bugfixes from D2
Fix issue 8893 ICE(interpret.c) with invalid struct literal

The implicit conversion can fail.  In this case the struct literal is
invalid (which means it will never reach CTFE).