IEnumerable <T> FindReferencesGlobal(CancellationToken ct) { IEnumerable <ModuleDef> modules; if (TIAHelper.IsTypeDefEquivalent(analyzedType)) { var analyzedTypes = new List <TypeDef> { analyzedType }; SearchNode.AddTypeEquivalentTypes(documentService, analyzedType, analyzedTypes); modules = SearchNode.GetTypeEquivalentModules(analyzedTypes); } else { modules = GetReferencingModules(analyzedType.Module, ct); } allModules.AddRange(modules); return(allModules.AsParallel().WithCancellation(ct).SelectMany(a => FindReferencesInModule(a, ct))); }
IEnumerable <T> FindReferencesInAssemblyAndFriends(CancellationToken ct) { IEnumerable <ModuleDef> modules; if (includeAllModules) { modules = documentService.GetDocuments().Select(a => a.ModuleDef).OfType <ModuleDef>(); } else if (TIAHelper.IsTypeDefEquivalent(analyzedType)) { var analyzedTypes = new List <TypeDef> { analyzedType }; SearchNode.AddTypeEquivalentTypes(documentService, analyzedType, analyzedTypes); modules = SearchNode.GetTypeEquivalentModules(analyzedTypes); } else { modules = GetModuleAndAnyFriends(analyzedType.Module, ct); } allModules.AddRange(modules); return(allModules.AsParallel().WithCancellation(ct).SelectMany(a => FindReferencesInModule(a, ct))); }
IEnumerable <T> FindReferencesGlobal(CancellationToken ct) { IEnumerable <ModuleDef> modules; if ((options & ScopedWhereUsedAnalyzerOptions.IncludeAllModules) != 0) { modules = documentService.GetDocuments().Select(a => a.ModuleDef).OfType <ModuleDef>(); } else if (TIAHelper.IsTypeDefEquivalent(analyzedType)) { var analyzedTypes = new List <TypeDef> { analyzedType }; SearchNode.AddTypeEquivalentTypes(documentService, analyzedType, analyzedTypes); modules = SearchNode.GetTypeEquivalentModules(analyzedTypes); } else { modules = GetReferencingModules(analyzedType.Module, ct); } allModules.AddRange(modules); return(allModules.AsParallel().WithCancellation(ct).SelectMany(a => FindReferencesInModule(a, ct))); }