A couple of additional field constant tests (changeset 1296709)
added more suppression fix unit tests

this unit test goes through every construct in C# and VB syntax tree and see whether suppression is added as epxected. (changeset 1296974)
added two more unit test that covers suppressmessage in compiler unit tests (changeset 1297019)
Use == for Symbol fields in BinaryOperatorSignature.Equals (changeset 1297131)
Bugfix 981821

The Trivia Formatter when looking into the trivia between 2 tokens fails to to take into account that some of the structured trivia which by themselves contain EndOfLine Trivia

Modified the Formatter logic to take into account the omitted EndOfLineTrivia (changeset 1297165)
Add OriginalIgnoreCase comparer to path based dictionaries in MSBuildWorkspace. (changeset 1297217)
If we might have a speculative semantic model and might refer back to the original model, we can't use positions inside method declarations. When locating aliases for Completion to display, use the SpanStart of the nearest declaration (which will exist in both the new and old trees). (changeset 1297406)
Fixes five bugs around the special code fix for implementing dispose pattern (IDisposable).

Majority root cause was the fact that we were bypassing logic already present in the default Implement Interface code fix when implementing the dispose pattern. We were also failing to generate a blank line after generated close brace for classes in C# leading to problems when the generated close brace id follwed by directives.

I also discovered couple of other unreported issues and am fixing them up as part of this change -
- Case sensitive string comparison was being used in VB.  I changed this to be case-insensitive.
- We were simplifying the entire class (including code that user would have typed by hand) when implementing the dispose pattern. I have fixed this to only simplify the code that we generate.

Also fixing up a couple of comments based CR feedback for a couple of earlier unrelated fixes. (changeset 1297494)
This implementation of finding alias names for completion to display is too slow, so back it out for now. (changeset 1297528)
Disable an assert to unblock our perf test runs. The assert failure is investigated as part of Bug 985811. (changeset 1297832)
In crefs, don't suggest type parameters defined in crefs. (changeset 1298269)
VB Expression Compiler

Update comments to reflect additional investigations into the native VB EE. (changeset 1298767)
Code review feedback for changeset 1297494 (changeset 1298798)
added some null check based on mini dump and callstack from project K + web solution. (changeset 1298952)
Update to target VSPro 21914.00 as the new baseline build. Note that linker warning 4099 has been ignored to suppress spurious warnings. (changeset 1299236)
Tidy Binder.BinderSpecificLookupOptions

It should follow our usual pattern for virtual methods in the binder:
1) Binder delegates to containing binder.
2) BackstopBinder returns the default value.
3) Subtypes of binder modify the containing binder value. (changeset 1299330)
Add default Configuration and Platform nodes to the native client projects. (changeset 1299359)
Adjusting conditional branches for EnC.

For every conditional branch that consumes a value of an expression that might contain calls to user code and that jumps across user code with sequence points, we need to store the value into a synthesized named local, emit stloc and ldloc and place a hidden sequence point on the ldloc instruction. Furthermore, the synthesized local variable has to be associated with the statement syntax whose lowering produces the conditional branch so that EnC infrastructure can map the local variable defined for the branch to the previous generation.

In essence this is what’s going on:

[|if (F())|]
{ … true … }
else
{ … false … }

IL:
call F()
stloc $value
<-- hidden sequence point -->
ldloc $value
brfalse label_false
<-- sequence point for “{“ of true-block -->
… true …
br label_end
label_false:
<-- sequence point for “{“of false-block -->
… false …
label_end:

When the call to F() returns after an update has been performed on the caller the code execution continues in the old version of the caller body until a special remapping breakpoint is hit. These breakpoints are put on all sequence points of the method. If we didn’t put the hidden sequence point in front of the conditional branch the execution would continue in the old code until another sequence point is hit. Such a sequence point can be arbitrary (suppose e.g. that the else block of the if statement is deleted by an edit). The debugger only knows how to map IP of active statements in the old IL to an IP in the new IL, not arbitrary sequence points. By inserting the hidden sequence point we force the mapping to be performed at well-defined point that we can map to the new method body.

The presence of the hidden sequence point then implies the need of storing the value of the if-statement condition to a long-lived local and reloading it back right after the sequence point. The store will happen before the IP is remapped and the load will happen in the new frame. The synthesized local must be allocated the same slot in the new frame so that its value is transferred from the old frame to the new frame.

Fixes bug 927151: Edit and Continue breaks If statements while inside the conditional method.

This change also includes an update to the test infrastructure to
1) make it easier to update failing test that checks for an expected IL
If a VerifyIL fails it synthesizes a temp file containing the unit test source and prints out a link that launches a diff tool (using ROSLYN_DIFFTOOL environment variable).
2) to be able to directly test correspondence of sequence points to IL.
VerifyIL has now an optional argument “sequencePoints”. When specified the printed IL will contain marks that designate presence of sequence points at IL offsets. “-“ for regular sequence point, “~” for hidden sequence points.
I have updated some tests that are supposed to validate correspondence of sequence points to IL instructions to use this new format.  (changeset 1299447)
Fixing infinite recursion crash in binding of Imports.

When we were binding imports we would realise corresponding diagnostics and store in the Imports.
The issue is that sometimes realizing diagnostics (for example Obsolete related) may need to do type lookup and that in turn will need to bind Imports creating an infinite recursion.

The fix makes Imports to store raw unrealized diagnostic bag on the Imports and defers realizing untill we perform validation pass. That avoids the situation of needing to bind usings while binding those same usings.

 (changeset 1299573)
Make Binder.CheckAccessibility consume Binder.BinderSpecificLookupOptions

Builds on changeset #1299330. (changeset 1299590)