Browse Source

#1025: Extend GetSymbol(this AstNode) to support LdVirtDelegate

pull/1608/head
Siegfried Pammer 6 years ago
parent
commit
dbd70d1879
  1. 16
      ICSharpCode.Decompiler/CSharp/Annotations.cs

16
ICSharpCode.Decompiler/CSharp/Annotations.cs

@ -108,11 +108,17 @@ namespace ICSharpCode.Decompiler.CSharp @@ -108,11 +108,17 @@ namespace ICSharpCode.Decompiler.CSharp
if (rr is MethodGroupResolveResult) {
// delegate construction?
var newObj = node.Annotation<NewObj>();
var funcptr = newObj?.Arguments.ElementAtOrDefault(1);
if (funcptr is LdFtn ldftn) {
return ldftn.Method;
} else if (funcptr is LdVirtFtn ldVirtFtn) {
return ldVirtFtn.Method;
if (newObj != null) {
var funcptr = newObj.Arguments.ElementAtOrDefault(1);
if (funcptr is LdFtn ldftn) {
return ldftn.Method;
} else if (funcptr is LdVirtFtn ldVirtFtn) {
return ldVirtFtn.Method;
}
}
var ldVirtDelegate = node.Annotation<LdVirtDelegate>();
if (ldVirtDelegate != null) {
return ldVirtDelegate.Method;
}
}
return rr?.GetSymbol();

Loading…
Cancel
Save