diff --git a/src/coreclr/vm/methodtable.cpp b/src/coreclr/vm/methodtable.cpp index 747831bb73642a..766477f9ed5189 100644 --- a/src/coreclr/vm/methodtable.cpp +++ b/src/coreclr/vm/methodtable.cpp @@ -9246,7 +9246,7 @@ MethodTable::TryResolveVirtualStaticMethodOnThisType(MethodDesc* pInterfaceMD) { COMPlusThrow(kTypeLoadException, E_FAIL); } - if (pMethodDecl != pInterfaceMD) + if (!pMethodDecl->HasSameMethodDefAs(pInterfaceMD)) { continue; } @@ -9260,7 +9260,15 @@ MethodTable::TryResolveVirtualStaticMethodOnThisType(MethodDesc* pInterfaceMD) { COMPlusThrow(kTypeLoadException, E_FAIL); } - return pMethodImpl; + + if (pInterfaceMD->HasMethodInstantiation()) + { + return pMethodImpl->FindOrCreateAssociatedMethodDesc(pMethodImpl, this, FALSE, pInterfaceMD->GetMethodInstantiation(), TRUE); + } + else + { + return pMethodImpl; + } } return nullptr;