Fix 11745: Private unit tests can not be invoked.
Added unittests for issue 11745.
incorrect strlen usage

- causes overflow for empty string
Replace WINDOWS_SEH code with a larger stack size - this matches the non-windows implementation
Make Array take the actual type of the stored element
Implement Statement::toIR in terms of a visitor interface
[Refactoring] Improve `Type::addSTC`
[Refactoring] Improve `Parser::parseType` by using `Type::addSTC`
[Refactoring] Improve CastExp parsing by using `Type::addSTC`
fix Issue 11768 - inconsistent behavior of type qualifier inout + const

Fix up `Parser::parseBasicType` by using `Type::addSTC`
fix Issue 11785 - Order of method/function declarations has an effect on compilation result
Update port.c

::isnan() and ::isinf() not defined on FreeBSD. Updated lines 517, 533 and 561 to recognize isnan() and isinf() instead.
[style] fix indent
[style] Just sort out cases

0 -> const -> wild -> shared -> ... -> immutable
[bugfix] Fix type parameter deduction bug

- `inout(U)` should accept `shared(inout(T))`
- `shared(inout(U))` should accept `shared(const(T))`
Clean up inout deduction

- Rename `Type::wildConvTo` to `deduceWild`
- Use `wildmatch` for sum of arguments match level, and use `wm` for one parameter match level.
- Extract current workarounds for issue 6930
fix Issue 6930 - combined type of immutable(T) and inout(T) should be inout(const(T))
Merge pull request #2994 from AndrewEdwards/master

Update port.c
Merge pull request #2993 from 9rnsr/fix11785

Issue 11785 - Order of method/function declarations has an effect on compilation result
correctly identify FreeBSD model