Browse Source

fix #585: Analyze doesn't seem to work across assemblies

pull/576/merge
Ed Harvey 11 years ago
parent
commit
7e8d010db2
  1. 42
      ILSpy/TreeNodes/Analyzer/AnalyzeContextMenuEntry.cs

42
ILSpy/TreeNodes/Analyzer/AnalyzeContextMenuEntry.cs

@ -67,23 +67,31 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
public static void Analyze(MemberReference member) public static void Analyze(MemberReference member)
{ {
TypeDefinition type = null; if (member is TypeReference) {
if (member is TypeReference) TypeDefinition type = ((TypeReference)member).Resolve();
type = ((TypeReference)member).Resolve(); if (type != null)
if (type != null) AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedTypeTreeNode(type));
AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedTypeTreeNode(type.Resolve())); }
FieldDefinition field = member as FieldDefinition; else if (member is FieldReference) {
if (field != null) FieldDefinition field = ((FieldReference)member).Resolve();
AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedFieldTreeNode(field)); if (field != null)
MethodDefinition method = member as MethodDefinition; AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedFieldTreeNode(field));
if (method != null) }
AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedMethodTreeNode(method)); else if (member is MethodReference) {
var propertyAnalyzer = AnalyzedPropertyTreeNode.TryCreateAnalyzer(member); MethodDefinition method = ((MethodReference)member).Resolve();
if (propertyAnalyzer != null) if (method != null)
AnalyzerTreeView.Instance.ShowOrFocus(propertyAnalyzer); AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedMethodTreeNode(method));
var eventAnalyzer = AnalyzedEventTreeNode.TryCreateAnalyzer(member); }
if (eventAnalyzer != null) else if (member is PropertyReference) {
AnalyzerTreeView.Instance.ShowOrFocus(eventAnalyzer); PropertyDefinition property = ((PropertyReference)member).Resolve();
if (property != null)
AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedPropertyTreeNode(property));
}
else if (member is EventReference) {
EventDefinition @event = ((EventReference)member).Resolve();
if (@event != null)
AnalyzerTreeView.Instance.ShowOrFocus(new AnalyzedEventTreeNode(@event));
}
} }
} }
} }

Loading…
Cancel
Save