Disambiguate type names for arrays in cv8 debug symbol output. Fixed template ambiguity issue in cv4 and cv8 debug information.
Fix Issue 3672 - Read-modify-write operations should not be allowed for shared variables.
fix Issue 12749 - Constructor-local function allows multiple mutation of immutable member
Improve diagnostic messages
fix Issue 12436 - Opaque struct parameter type should not be allowed
fix Issue 12307 - Contextfull error diagnostic about AA key type
Do implicit cast for ExpInitializers inside CTFE

Move the implicit cast inside CTFE, so that we're evaluating the
final value.
fix Issue 12138 - Label statement creates an unexpected scope block
Fix bug 7209: Stack overflow on circular enum with explicit type

Detect the error in the semantic pass. This slightly changes the error
message for one existing test (it was previously detected inside CTFE)
-- now the *first* circular definition generates the error, which makes
more sense.
Merge pull request #3601 from 9rnsr/fix12307

Issue 12307 - Contextfull error diagnostic about AA key type
Merge pull request #3584 from 9rnsr/fix12436

Issue 12436 - Opaque struct parameter type should not be allowed
Merge pull request #3594 from donc/circular_enum7209

Fix bug 7209: Stack overflow on circular enum with explicit type
require opEquals for AA keys

- Check that the compiler can generate a runtime function to test AA keys for equality.

- This is necessary to switch the druntime implementation from opCmp to opEquals.
fix Issue 11672 - default initialization of static array of structs with a single value fails
fix Issue 5810 - Struct postincrement generates 'no effect' error if used on struct member
Merge pull request #3605 from 9rnsr/fix5810

Issue 5810 - Struct postincrement generates 'no effect' error if used on struct member
Merge pull request #3604 from 9rnsr/fix11672

Issue 11672 - default initialization of static array of structs with a single value fails
Merge pull request #3602 from donc/ctfe_implicit_convert

Do implicit cast for ExpInitializers inside CTFE
Merge pull request #3603 from 9rnsr/fix12138

Issue 12138 - Label statement creates an unexpected scope block
Fix Issue 12824 - REG(2.066) ICE(statement.c) Segfault with label and static if