fix Issue 11215 - `inout` lose enclosing `shared` on resolution
Partial fix Issue 11003 - Improve .di generation

Use shorthand syntax for eponymous function/aggregate templates
fix Issue 11376 - ICE on __traits(compiles, ...) with invalid array-op
fix Issue 11286 - Impure dtor makes "cannot call impure function" error, although it won't actually be called.
[style] fix indent
[Refactoring] Reorder code logic

Move "special cases" up in the function body
- In `AssignExp::toElem`, handling for the ref-init and NRVO.
- In `AssignExp::semantic`, handling for TOKconstruct case.
[Refactoring] Add CallExp::implicitCastTo
[Refactoring] Move construction handling in `AssingExp::semantic`
Merge pull request #2677 from 9rnsr/fix11286

Issue 11286 - Impure dtor makes "cannot call impure function" error, although it won't actually be called.
Merge pull request #2702 from 9rnsr/refactor_assign

[Refactoring] Gather assignment/construction handling into AssignExp
Merge pull request #2658 from 9rnsr/fix11215

Issue 11215 - `inout` lose enclosing `shared` on resolution
Merge pull request #2706 from 9rnsr/fix11376

Issue 11376 - ICE on __traits(compiles, ...) with invalid array-op
[Refactoring] move code block
Reduce __inlineretval generation count

If `nrvo_var != NULL`, inlining can directly replace it to the substituted variable.
Do inline for the variable initialization with NRVO function call

Pass `eret` as an additional inlining context, if it is found.
fix Issue 11224 - Inlining stops NRVO
fix Issue 11394 - NRVO should work for object field initialization in constructor
Clean up useenv
Merge pull request #2592 from 9rnsr/fix_inline_nrvo

Do inline for the variable initialization with NRVO function call
Merge pull request #2649 from 9rnsr/fix11003

Partial fix Issue 11003 - Improve .di generation