Roslyn method survey - Building an index of method signatures

Given a CSharp solution I wanted to ask which methods shared the same signature. It’s possible to load a solution using MsBuild and produce a set of documents that can be analysed using Roslyn’s Syntax API - and running through that analysis is fairly straightforward, with a bit of detail around method signature comparison.

Taking the documents collection produced by loading a solution it’s easy to extract a tuple holding parameters, return type and method name (if you’re looking for Map, you can replace with Select – I just picked up the LanguageExt.Core NuGet):

I can then build a lookup from method signature to a list of methods – after defining what I think of as a method signature. I decided to take the return type and a list of the parameter types, using a clunky first-cut EquivalentTo method to compare lists of parameter types, because two methods might define parameters in a different order:

EquivalentTo as I say is a little clunky, but serves:

The end result signatureLookup is lookup from a method signature (as parameter type list and return type) to a list of methods expressing that signature, that you can then use as you want; for example, to build an ordered list of signature : method list mappings: