Ejemplo n.º 1
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 = binder.BindEmbeddedBlock(bodyBlock, diagnostics);
     AssertEx.SetEqual(errors, diagnostics.AsEnumerable().Select(DumpDiagnostic));
 }
Ejemplo n.º 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 = binder.BindEmbeddedBlock(bodyBlock, diagnostics);

            AssertEx.SetEqual(errors, diagnostics.AsEnumerable().Select(DumpDiagnostic));
        }
Ejemplo n.º 3
0
        public void TestWarnings(string code, params string[] expectedWarnings)
        {
            var compilation            = CreateCompilation(code);
            var method                 = (SourceMemberMethodSymbol)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          = binder.BindEmbeddedBlock(bodyBlock, new DiagnosticBag());
            var actualWarnings = new DiagnosticBag();

            DiagnosticsPass.IssueDiagnostics(compilation, block, actualWarnings, method);
            AssertEx.SetEqual(expectedWarnings, actualWarnings.AsEnumerable().Select(DumpDiagnostic));
        }