CTFE returns classes
Allow to multiple references to object + Allow to assign enum class object to local variables + Fix 5678
disallow pointers to mutable struct enums and mutable class enums
disallow class enums and thread-local mutable classes and pointers to structs
Fixed this-assignment bug + code style fixes
fix phobos test fail
add comment and small refactoring
Replace of  'magic' number with named constant.
fix Issue 9892 - [ICE] forward reference in enum declaration members causes compiler segfault
fix Issue 6795 - ICE(cgcs.c): Incrementing an enum array item
fix Issue 9901 - string return from inner template function error
fix Issue 9899 - struct with pure/nothrow destructor cannot be used as a struct member in pure/nothrow functions
Bonus track: fix traits getOverloads+getProtection ICE
fix Issue 9781 - -inline will cause backend ICE

- this rewrite created a const elem with type TYvoid
  which caused the backend assert in evalu8
the same applies to elandand
fix Issue 9386 - struct destructor called erroneously
Merge pull request #1874 from dawgfoto/fix9781

fix Issue 9781 - -inline will cause backend ICE
Test testbounds.d and testbounds2.d with permute switches

Change from () to (-inline -release -g -O)
Merge pull request #1876 from 9rnsr/test_bounds

Test testbounds.d and testbounds2.d with permute switches
Fix issue 9908 CTFE ICE block initialized global static array

Specify the required type, so that T[n] arr = x it is converted into
T[n] arr = [x,x,x].