// In VB use AssertTheseErrors format for expected diagnostics! private static void VerifyEmitDiagnostics( CSharpCompilation compilation, bool metadataOnlyShouldSucceed, DiagnosticDescription[] expectedFullBuildDiagnostics, DiagnosticDescription[] expectedMetadataOnlyDiagnostics = null) { using (var executableStream = new MemoryStream()) { var result = compilation.Emit(executableStream); Assert.False(result.Success); result.Diagnostics.Verify(expectedFullBuildDiagnostics); } using (var executableStream = new MemoryStream()) { var result = compilation.EmitMetadataOnly(executableStream); if (metadataOnlyShouldSucceed) { Assert.True(result.Success); result.Diagnostics.Verify(); } else { Assert.False(result.Success); result.Diagnostics.Verify(expectedMetadataOnlyDiagnostics ?? expectedFullBuildDiagnostics); } } }