When resolving a GenericInstanceMethod for a privatescope method that has the same signature as other methods, MetadataResolver.GetMethod would incorrectly return the first method with the same name.
The fix for this seems to be an optimization opportunity as well. Although I have to admit it feels a little too easy. Please make sure I'm not overlooking some reason why this fix is not safe.
I added 2 variations of tests.
PrivateScope - These tests were fine and passed as is. This is because the instruction operands are MethodDefinitions and therefore didn't need to be resolved by MetadataResolver
PrivateScopeGeneric - This test triggered the bug.
When resolving a
GenericInstanceMethod
for aprivatescope
method that has the same signature as other methods,MetadataResolver.GetMethod
would incorrectly return the first method with the same name.The fix for this seems to be an optimization opportunity as well. Although I have to admit it feels a little too easy. Please make sure I'm not overlooking some reason why this fix is not safe.
I added 2 variations of tests.
PrivateScope
- These tests were fine and passed as is. This is because the instruction operands are MethodDefinitions and therefore didn't need to be resolved byMetadataResolver
PrivateScopeGeneric
- This test triggered the bug.