public async Task SanityCheck(string text)
        {
            Document    document    = CreateDocument(text);
            Compilation compilation = await document.Project.GetCompilationAsync();

            var walker = new ExceptionWalker(compilation, CancellationToken.None);
            var node   = (CSharpSyntaxNode)await document.GetSyntaxRootAsync();

            node.Accept(walker);

            walker.Locations.Should().BeEquivalentTo((Line: 13, Column: 4));
        }
        public async Task PropertyGetterConditionalAccess(string text)
        {
            Document    document    = CreateDocument(text);
            Compilation compilation = await document.Project.GetCompilationAsync();

            var walker = new ExceptionWalker(compilation, CancellationToken.None);
            var node   = (CSharpSyntaxNode)(await document.GetSyntaxRootAsync()).DescendantNodes()
                         .OfType <ClassDeclarationSyntax>().First();

            node.Accept(walker);

            walker.Locations.Should().BeEquivalentTo((Line: 14, Column: 16));
        }
        public async Task SeparateFiles(string text1, string text2)
        {
            Document    document    = CreateCSharpDocument(text1, text2);
            Compilation compilation = await document.Project.GetCompilationAsync();

            var walker = new ExceptionWalker(compilation, CancellationToken.None);
            var node   = (CSharpSyntaxNode)(await document.GetSyntaxRootAsync()).DescendantNodes()
                         .OfType <ClassDeclarationSyntax>().First(n => n.Identifier.Text == "Foo");

            node.Accept(walker);

            walker.Locations.Should().BeEquivalentTo((Line: 14, Column: 4));
        }
        public async Task Property_ShouldNotFindAnything(string text)
        {
            Document    document    = CreateDocument(text);
            Compilation compilation = await document.Project.GetCompilationAsync();

            var walker = new ExceptionWalker(compilation, CancellationToken.None);
            var node   = (CSharpSyntaxNode)(await document.GetSyntaxRootAsync()).DescendantNodes()
                         .OfType <ClassDeclarationSyntax>().First();

            node.Accept(walker);

            walker.Locations.Should().BeEmpty();
        }