[Refactoring] Add findGotoTarget to share common code
[Refactoring] Return NULL from WithStatement::interpret()
[Refactoring] Remove Statement::interpret()
[Refactoring] Remove Expression::interpret()
[Refactoring] Handle NULL Expression or Statement in interpret() call
Add test case to cover version.c.
Merge pull request #4170 from 9rnsr/refactor_ctfe

[Refactoring] Remove interpret member function from Expression and Statement
fix misleading deprecation messages
Merge pull request #4173 from WalterBright/errordep

fix misleading deprecation messages
Print debug/version level instead of __anonymous in error messages.

When integer debug/version levels are used, ident is not defined,
causing Dsymbol::toChars() to print "__anonymous", which is unhelpful.
Instead, it should return the debug/version level being set as an
integer.
Merge pull request #4171 from quickfur/issue13786_version

Issue 13786: Add test case to cover version.c.
fix Issue 13200 - Assertion `protName' failed

Set `parent`, `protection`, `isdeprecated`, and `userAttribDecl` members of `EnumDeclaration` as same as class and struct declarations, even if its definition is opaque.
fix Issue 13788 - dmd segfault, pragma(mangle) and a mixin
Unlisted bug fix: correct sc->pop() timing
[Refactoring] Improve code flow for error handling
[Refactoring] Remove ScopeStatement that is hard to notice

Conflicts:
	src/expression.c
[Refactoring] Increase locality of variables
fix Issue 13787 - Error without line number when slicing function pointer
[Refactoring] Fix incorrect wording 'arg' 'argument' for Parameter objects

An exception is the around of TypeTuple. It stores types and expressions
merely using Parameter. So the wording 'arg' is not incorrect at least.
Merge pull request #4182 from 9rnsr/refactor_parameter

[Refactoring] Fix incorrect wording 'arg' 'argument' for Parameter objects