Browse Source

Search for usage of private nested types in declaring type

pull/252/head
Ronny Klier 14 years ago
parent
commit
52674f3045
  1. 15
      ILSpy/TreeNodes/Analyzer/ScopedWhereUsedAnalyzer.cs

15
ILSpy/TreeNodes/Analyzer/ScopedWhereUsedAnalyzer.cs

@ -128,7 +128,7 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -128,7 +128,7 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
DetermineTypeAccessibility();
if (typeAccessibility == Accessibility.Private) {
return FindReferencesInTypeScope(ct);
return FindReferencesInEnclosingTypeScope(ct);
}
if (memberAccessibility == Accessibility.Internal ||
@ -139,7 +139,7 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -139,7 +139,7 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
return FindReferencesGlobal(ct);
}
private void DetermineTypeAccessibility()
{
while (typeScope.IsNested) {
@ -237,6 +237,17 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -237,6 +237,17 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
}
}
private IEnumerable<T> FindReferencesInEnclosingTypeScope(CancellationToken ct)
{
foreach (TypeDefinition type in TreeTraversal.PreOrder(typeScope.DeclaringType, t => t.NestedTypes)) {
ct.ThrowIfCancellationRequested();
foreach (var result in typeAnalysisFunction(type)) {
ct.ThrowIfCancellationRequested();
yield return result;
}
}
}
private IEnumerable<AssemblyDefinition> GetReferencingAssemblies(AssemblyDefinition asm, CancellationToken ct)
{
yield return asm;

Loading…
Cancel
Save