Fixes issue with variadic functions on win64 if the argument before the variadic function is > 8 byte (issue 9495)
Merge remote-tracking branch 'remotes/upstream/master' into pull9495

Conflicts:
	src/func.c
-Added test case for bug 9495
-Using Target::ptrsize instead of hardcoded constant
test9495 should not be compiled with -release
fix Issue 9091 - Using __traits(getMember) on template argument fails inside member function

Use ThisExp instead of VarExp to avoid interpretation on template arguments.
If a VarExp requires right 'this' but doesn't have it, make it an error

And, distinguish typeof(Type.var) and typeof({ auto x = Type.var; }) by sc->intypeof == 1 or 2.
Use ScopeExp for correct semantic path

Additional fix for Issue 3775 - Segfault(cast.c): casting no-parameter template function using property syntax

Allow using Type.templatefunc as a property
Add implicit translation from Type.aliasthis.member to typeof(Type.aliasthis).member

And, add some test cases for 'alias this'.
Add backout process from VarExp to DsymbolExp in TypeXXX::resolve
fix hasThis for inside mixin
fix Issue 1680 - static struct constructor overloaded with method prevents compilation in inner function
Allow exactly *unreal* VarExp to minimize code breaking
Fix std.typecons breaking

Add test cases for accessing 'this' from constraint and DeclDefs scope
Fixes Issue 9480 - Template name should be stripped of parameters in JSON output.
Fixes Issue 9613 - Parser bug using .init with type constructor.
fix Issue 9617 - ulong.max is wrongly accepted by smaller signed parameter
fix Issue 9619 - Failed struct field typeof in inner function
Merge pull request #1704 from 9rnsr/fix9617

Issue 9617 - ulong.max is wrongly accepted by smaller signed parameter
Merge pull request #1687 from 9rnsr/fixRightThis

Fix right this check
[Refactoring] Add Declaration::isField()