Additional tests for DevDiv #1003274. (changeset 1376836)
Checkin some project file changes that were missed from the previous checkin. (changeset 1376844)
Stop excluding System.Decimal from types searched for user defined conversions.

This is not only inconsistent with the other builtin types, it is also a breaking change.
***NO_CI***
 (changeset 1376902)
Adding some tests for recursive parsing of ruleset files. (changeset 1376925)
More SyntaxGenerator  (changeset 1377207)
Correct comments (changeset 1377220)
IDE support for VB NameOf expressions

* NameOf included in completion list
* Signature help for NameOf
* Completion list support inside NameOf expressions for relevant symbols, Me, MyBase and MyClass
* Formatter no longer inserts a space between NameOf and the opening parenthesis
* Pretty listing no longer inserts empty argument lists in NameOf
* Plenty 'o tests
* Parenthesis simplification support (changeset 1377255)
Fixing 1087736: [FxCop] Error CA3060 (UseXmlReaderForSchemaRead) being reported in RulesetProcessor.cs

Calling XmlSchema.Read(Stream, ..) is potentially unsafe it seems. The rule suggests changing it to XmlSchema.Read(XmlReader, ...). Doing that. (changeset 1377280)
changed namespace for FatalError to Microsoft.CodeAnalysis for compiler and Microsoft.CodeAnalysis.ErrorReporting for the rest.

it is done so that we can access static fields in FatalErrors. otherwise, it is not possible to see those under debugger in a dump.

also removed FatalError.Report [DebuggerHidden] attribute so that we can set break point there. (changeset 1377507)
Improve documentation comments on TextSpan. (changeset 1377574)
Add compiler diagnostic analyzers for VB and C# compilers.

1) Implement diagnostic analyzers which register syntax tree action (syntax diagnostics), semantic model action (semantic diagnostics) and compilation end action (declaration diagnostics with non-source location)

2) Add C# and VB code analysis assemblies as analyzer assets to VisualStudioComponents VSIX manifest file.

3) Remove special casing of CompilerDiagnosticsProvider in the IDE diagnostic service, its just a regular VSIX based analyzer now.

4) Add WellKnownDiagnosticTags.NotConfigurable tag to all compiler errors and ensure that we don't suppress/filter diagnostics or analyzers with this tag. (changeset 1377682)
Bug Fixes #304 #318 #169

1079042 - NormalizeWhitespace problem aligning xml doc comments
86616, 1040241 - NormalizeWhitespace problem losing whitespace after directive keywords
1070667 - SyntaxNode.GetCurrentNode throwing when not found
991474 - SyntaxRewriter throws instead of removing trivia when trivia override returns null.
 (changeset 1377858)
Allow indexer initializers to target arrays inside of object initializers.
***NO_CI***
 (changeset 1377865)
DevDiv #1022632: Managed address-of

Thanks to Tomas' suggestion that we use IntPtr in place of reference types and Vlad's excellent code generator, this feature basically only requires the suppression of a couple diagnostics.

There is, however, a small change (improvement?) from dev12.  Suppose "str" is a string.  Then dev12 types "&str" as "string&*", which is probably the most accurate .NET description of the type.  However, Roslyn does not support & types, so it uses the representation "IntPtr*".  The value of the pointer is the same, and dereferencing yields the same pointer, albeit as an IntPtr, rather than as a string&.  This might actually be an improvement, since it is clear what operations can be performed on an IntPtr, whereas a string& can only be manipulated through trial and error (e.g. it turns out that it supports ==).

I think it would be reasonable to add a VS integration test for this scenario, but I don't know of a good way to extract the pointer value so that it can be re-used with the @ syntax, which can actually be verified.  Also, our base drop of VS can't launch the Memory window, which it would also be nice to verify.

CR: VSadov; ChuckS (changeset 1377887)
Fix binary compat break by bringing back the DiagnosticDescriptor constructor that takes string parameters instread of LocalizableStrings. (changeset 1377929)
CommandLineParser.GetCompilationAndModuleNames should report an error rather than infer an empty compilation name, which would cause an exception during compilation creation. (changeset 1378023)
VB: Implement BC31499 error. (changeset 1378065)
IsDefinedOrImplementedInSourceTree – when called for an implicitly declared instance constructor, return the answer for the containing type. This ensures that an error about missing parameter-less base constructor is returned for syntax tree containing declaration of a derived type. (changeset 1378066)
Change DecodeTypeName to a static method (changeset 1378081)
This change allows conditional member access as a member declarator of an anonymous object expression. It is now legal to do the following:

class C
{
 int L { get { return 0; } }

 void Test()
 {
 C local = null;
 var x1 = new { local.L };
 var x2 = new { local?.L } ;
 }
}

The initializer of x1 and x2 will produce a single anonymous type definition. It will have a single field named L.

This closes DevDiv 991505 and CodePlex 199
***NO_CI***
 (changeset 1378486)