public async Task TestIssue4709()
        {
            string testCode = @"
public interface ITest {
}

public class Test : ITest
{
	public static void Main (string[] args)
	{
		Test test;
	}
}

";
            var    refs     = await GatherReferences(testCode, async project => {
                var provider = new CSharpFindReferencesProvider();
                var monitor  = new MockSearchProgressMonitor();
                await provider.FindReferences("T:ITest", project, monitor);
                return(monitor.Results);
            });

            Assert.AreEqual(2, refs.Count);

            refs = await GatherReferences(testCode, async project => {
                var provider = new CSharpFindReferencesProvider();
                var monitor  = new MockSearchProgressMonitor();
                await provider.FindAllReferences("T:ITest", project, monitor);
                return(monitor.Results);
            });

            Assert.AreEqual(4, refs.Count);
        }
        public async Task TestFindReferences()
        {
            var refs = await GatherReferences(@"class FooBar {}", async project => {
                var provider = new CSharpFindReferencesProvider();
                var monitor  = new MockSearchProgressMonitor();
                await provider.FindReferences("T:FooBar", project, monitor);
                return(monitor.Results);
            });

            Assert.AreEqual(1, refs.Count);
        }
        public async Task TestFindAllReferences()
        {
            var refs = await GatherReferences(@"class FooBar {  
public void Foo() {}
public void Foo(int i) {}
public void Foo(string s) {}
public void Foo(int i, int j) {}
 }", async project => {
                var provider = new CSharpFindReferencesProvider();
                var monitor  = new MockSearchProgressMonitor();
                await provider.FindAllReferences("M:FooBar.Foo", project, monitor);
                return(monitor.Results);
            });

            Assert.AreEqual(4, refs.Count);
        }
        public async Task TestBug591385()
        {
            var refs = await GatherReferences(@"
public class RefBug {
    public int xxx;
    public void Meth() { xxx++; }
}

public class RefBug2
{
    public int xxx;
    public void Meth() { xxx++; }
}

", async project => {
                var provider = new CSharpFindReferencesProvider();
                var monitor  = new MockSearchProgressMonitor();
                await provider.FindAllReferences("F:RefBug2.xxx", project, monitor);
                return(monitor.Results);
            });

            Assert.AreEqual(2, refs.Count);
        }