fix Issue 8220 - invalid function call not detected during semantic analysis
Fixes Issue 8509 - Appending base type to enum should not result in new enum type.
fix Issue 8238 - templates can create ghost fields
fix Issue 8945 - Can't call static struct initializer or constructor without qualifier for templated inner struct
Issue 7444 - Require [] for array copies too
Change deprecation error to warning.
Kill the syntax `alias this = sym;`
fix Issue 9231 - overriding inout funcion with attribute inference reports weird error
fix Issue 9232 - Parsing error on some templated methods calls
Fixes Issue 5450 - Don't generate default ctor if base class lacks default ctor.
Fixes Issue 8041 - __gshared without initializer fails compilation.
Fixes Issue 4479 - Better error message when a module with a name different from its file name is imported via its file name.
fix Issue 3825 - AAs entries are default initialized before the new value is evaluated
fix Issue 8366 - Overriding const member function in conjunction with mutable overload causes a strange error

We MUST kill attribute inference with const. To implement it correctly without breaking overriding and overloading features, re-scanning and arrangement of vtbl entries is needed in the end of Classdeclaration::semantic, it will decrease compile speed.
I think that is a big drawbacks than the benefit.
Fixes Issue 4528 - Better diagnostic on non-virtual abstract method.
fix Issue 9155 - Ddoc: code section should strip leading spaces
Add check for circular "alias this" type dependency.
Add check recursion in typeMerge
Fix SliceExp::semantic, and (Una|Array|Bin|BinAssign)Exp::op_overload
Fix CallExp and AssignExp