Consolidating range traits
Added JSONValue dictionary add and vector append
Spelling
fix issue 9959 - Add functional pattern matching for object references

Add the function std.algorithm.castSwitch, which chooses a delegate
based on the class of an object and run that delegate with that object.
use CRuntime_DigitalMars/CRuntime_Microsoft instead of Win32/Win64 where appropriate
Verify that json array append does not alias the original array
std.range: Fix links in tee documentation
std.format: Make double to string conversion @safe

Bonus optimization: avoid redundant and possibly-unsafe strlen
Merge pull request #2494 from CyberShadow/pull-2014-09-07-11575425

std.format: Make double to string conversion @safe
Merge pull request #2492 from CyberShadow/pull-2014-09-07-09564922

std.range: Fix links in tee documentation
Add std.range.enumerate

Fixes issue 5550
Supplemental fix for issue 9148 - lambdas will be aggressively inferred to pure
Supplemental fix for issue 13120 - remove accidentally accepted @nogc attribute

`removechars()` and `squeeze()` are not @nogc, because they uses `dup` and `std.utf.encode`.
Documentation corrected.
Make std.file.getAttributes safe
Merge pull request #2495 from yglukhov/doc-fix

Documentation corrected.
Fix Issue 11706 - Add a TypedefType trait to extract the underlying type
of a std.typecons.Typedef.
Fix issue 13425 - DList.linearRemove on last...

...element returns non-empty range.

The main issue is that DList.Range is implemented in terms of "first and last" as opposed to "first and past last", which means you have to special-case empty ranges. The fix is to do the same thing as in `opSlice`, and to explicitly initialize a null Range when it is empty.
Merge pull request #2493 from 9rnsr/fix13120

Supplemental fix for issue 9148 and 13120
Tweak static if in Array

Probably changes nothing in the generated code, but can have an impact of attribute inference. I'm trying to get this to be `@nogc`