Browse Source

Analyzer: Show type name; avoid resolving (and potentially loading assemblies) where possible.

pull/70/head
Daniel Grunwald 15 years ago
parent
commit
4e0d9ddefe
  1. 2
      ILSpy/TreeNodes/Analyzer/AnalyzedMethodTreeNode.cs
  2. 6
      ILSpy/TreeNodes/Analyzer/AnalyzedMethodUsedByTreeNode.cs

2
ILSpy/TreeNodes/Analyzer/AnalyzedMethodTreeNode.cs

@ -38,7 +38,7 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -38,7 +38,7 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
}
public override object Text {
get { return MethodTreeNode.GetText(analyzedMethod, Language); }
get { return Language.TypeToString(analyzedMethod.DeclaringType, true) + "." + MethodTreeNode.GetText(analyzedMethod, Language); }
}
public override void ActivateItem(System.Windows.RoutedEventArgs e)

6
ILSpy/TreeNodes/Analyzer/AnalyzedMethodUsedByTreeNode.cs

@ -78,6 +78,8 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -78,6 +78,8 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
IEnumerable<SharpTreeNode> FindReferences(LoadedAssembly asm, CancellationToken ct)
{
string name = analyzedMethod.Name;
string declTypeName = analyzedMethod.DeclaringType.FullName;
foreach (TypeDefinition type in TreeTraversal.PreOrder(asm.AssemblyDefinition.MainModule.Types, t => t.NestedTypes)) {
ct.ThrowIfCancellationRequested();
foreach (MethodDefinition method in type.Methods) {
@ -86,8 +88,8 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer @@ -86,8 +88,8 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
if (!method.HasBody)
continue;
foreach (Instruction instr in method.Body.Instructions) {
if (instr.Operand is MethodReference
&& ((MethodReference)instr.Operand).Resolve() == analyzedMethod) {
MethodReference mr = instr.Operand as MethodReference;
if (mr != null && mr.Name == name && mr.DeclaringType.FullName == declTypeName && mr.Resolve() == analyzedMethod) {
found = true;
break;
}

Loading…
Cancel
Save