public override int GetIndexOfTargetAssembly <TSymbol>(
            ImmutableArray <TSymbol> assembliesAndModules,
            AssemblyIdentityComparer unused)
        {
            var index = _owningPEModule.GetAssemblyReferenceIndexOrThrow(_targetAssemblyHandle);
            var referencedAssembly = _owningModule.ReferencedAssemblySymbols[index];

            return(assembliesAndModules.IndexOf((TSymbol)referencedAssembly));
        }
        public TAssemblySymbol GetTargetAssembly <TModuleSymbol, TAssemblySymbol>(
            TModuleSymbol module,
            PEModule peModule)
            where TModuleSymbol : class, IModuleSymbol
            where TAssemblySymbol : class, IAssemblySymbol
        {
            if (_targetAssemblyHandle.IsNil)
            {
                return(null);
            }

            var index = peModule.GetAssemblyReferenceIndexOrThrow(_targetAssemblyHandle);
            var referencedAssembly = module.ReferencedAssemblySymbols[index];

            return((TAssemblySymbol)referencedAssembly);
        }