public MatchSymbols(
     IReadOnlyDictionary <AnonymousTypeKey, AnonymousTypeValue> anonymousTypeMap,
     SourceAssemblySymbol sourceAssembly,
     AssemblySymbol otherAssembly,
     ImmutableDictionary <Cci.ITypeDefinition, ImmutableArray <Cci.ITypeDefinitionMember> > otherSynthesizedMembersOpt,
     DeepTranslator deepTranslatorOpt)
 {
     _anonymousTypeMap           = anonymousTypeMap;
     _sourceAssembly             = sourceAssembly;
     _otherAssembly              = otherAssembly;
     _otherSynthesizedMembersOpt = otherSynthesizedMembersOpt;
     _comparer         = new SymbolComparer(this, deepTranslatorOpt);
     _matches          = new ConcurrentDictionary <Symbol, Symbol>(ReferenceEqualityComparer.Instance);
     _otherTypeMembers = new ConcurrentDictionary <NamedTypeSymbol, IReadOnlyDictionary <string, ImmutableArray <Cci.ITypeDefinitionMember> > >();
 }
 public SymbolComparer(MatchSymbols matcher, DeepTranslator deepTranslatorOpt)
 {
     Debug.Assert(matcher != null);
     _matcher           = matcher;
     _deepTranslatorOpt = deepTranslatorOpt;
 }