Roslyn method survey - Revised signature builder

My previous method signature survey code was clunky, so I wanted to refine it a little to be simpler and to refocus based on the need to do string matches for parameter and return types. The result is a little clearer. It builds a dictionary of dictionaries, with a hashset of parameter types as the first key, and the return type as the second. If the hashsets uses as key change then the dictionary would become unusable – ideally this’d be an ImmutableHashSet but I’ll have to take a look at creating an equality comparer for it. As it is I’m using CreateSetComparer to generate an equality comparer – which just uses EqualityComparer.Default under the hood, which might not be suitable for all Cultures, for example.

From there I can build up a summary list of method signatures:

or identify those signatures shared by more than one method with x.Values.Where(dictionary => dictionary.Values.Count() > 1), among other things.