Example #1
0
        // Tests just the errors found while binding method M in class C.
        public void TestErrors(string code, params string[] errors)
        {
            var compilation            = CreateCompilationWithMscorlib(code);
            var method                 = (SourceMethodSymbol)compilation.GlobalNamespace.GetTypeMembers("C").Single().GetMembers("M").Single();
            var factory                = compilation.GetBinderFactory(method.SyntaxTree);
            var parameterBinderContext = factory.GetBinder(method.BlockSyntax);
            var binder                 = new ExecutableCodeBinder(method.BlockSyntax.Parent, method, parameterBinderContext);
            var diagnostics            = new DiagnosticBag();
            var block = (BoundBlock)binder.BindStatement(method.BlockSyntax, diagnostics);

            AssertEx.SetEqual(errors, diagnostics.AsEnumerable().Select(DumpDiagnostic));
        }
Example #2
0
 public void TestErrors(string code, params string[] errors)
 {
     var compilation = CreateCompilationWithMscorlib(code);
     var method = (SourceMethodSymbol)compilation.GlobalNamespace.GetTypeMembers("C").Single().GetMembers("M").Single();
     var factory = compilation.GetBinderFactory(method.SyntaxTree);
     var bodyBlock = (BlockSyntax)method.BodySyntax;
     var parameterBinderContext = factory.GetBinder(bodyBlock);
     var binder = new ExecutableCodeBinder(bodyBlock.Parent, method, parameterBinderContext);
     var diagnostics = new DiagnosticBag();
     var block = (BoundBlock)binder.BindStatement(bodyBlock, diagnostics);
     AssertEx.SetEqual(errors, diagnostics.AsEnumerable().Select(DumpDiagnostic));
 }
Example #3
0
        public void TestWarnings(string code, params string[] expectedWarnings)
        {
            var compilation            = CreateCompilationWithMscorlib(code);
            var method                 = (SourceMethodSymbol)compilation.GlobalNamespace.GetTypeMembers("C").Single().GetMembers("M").Single();
            var factory                = compilation.GetBinderFactory(method.SyntaxTree);
            var bodyBlock              = (BlockSyntax)method.BodySyntax;
            var parameterBinderContext = factory.GetBinder(bodyBlock);
            var binder                 = new ExecutableCodeBinder(bodyBlock.Parent, method, parameterBinderContext);
            var block          = (BoundBlock)binder.BindStatement(bodyBlock, new DiagnosticBag());
            var actualWarnings = new DiagnosticBag();

            DiagnosticsPass.IssueDiagnostics(compilation, block, actualWarnings, method);
            AssertEx.SetEqual(expectedWarnings, actualWarnings.AsEnumerable().Select(DumpDiagnostic));
        }
 public void TestWarnings(string code, params string[] expectedWarnings)
 {
     var compilation = CreateCompilationWithMscorlib(code);
     var method = (SourceMethodSymbol)compilation.GlobalNamespace.GetTypeMembers("C").Single().GetMembers("M").Single();
     var factory = compilation.GetBinderFactory(method.SyntaxTree);
     var parameterBinderContext = factory.GetBinder(method.BlockSyntax);
     var binder = new ExecutableCodeBinder(method.BlockSyntax.Parent, method, parameterBinderContext);
     var block = (BoundBlock)binder.BindStatement(method.BlockSyntax, new DiagnosticBag());
     var actualWarnings = new DiagnosticBag();
     DiagnosticsPass.IssueDiagnostics(compilation, block, actualWarnings, method);
     AssertEx.SetEqual(expectedWarnings, actualWarnings.AsEnumerable().Select(DumpDiagnostic));
 }