fix Issue 8945 - Can't call static struct initializer or constructor without qualifier for templated inner struct
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.
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
Fix inferAggregate
Fix checkToBoolean
Add comment
Reduce and pack in TypeStruct/TypeClass field, and use enum for readability.
fix Issue 8589 - Incorrect conversion of function returning `typeof(null)` to function returning an array
fix Issue 8959 - IsExpression should support syntax which has no Identifier in all cases
Apply code simplification that is pointed out by Andrej Mitrovic
fix Issue 8669 - TemplateThisParameter should change member function's qualifier
Merge pull request #1255 from 9rnsr/fix8959

Issue 8959 - IsExpression should support syntax which has no Identifier in all cases
Merge pull request #1250 from 9rnsr/fix8945

Issue 8945 - Can't call static struct initializer or constructor without qualifier for templated inner struct
Merge pull request #1121 from 9rnsr/fix8669

[enh] Issue 8669 - TemplateThisParameter should change member function's qualifier
Merge pull request #1119 from 9rnsr/fix8589

Issue 8589 - Incorrect conversion of function returning `typeof(null)` to function returning an array
Merge pull request #1042 from 9rnsr/fix8366

Issue 8366 - Overriding const member function in conjunction with mutable overload causes a strange error
Merge pull request #1028 from 9rnsr/fix_aliasthis

Issue 7437,7980,8053 - Partial fix for stack overflow with recursive alias this