From 0f2cd5aa8e734e48a209e1691d34db3d3d1e9a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Sim=C3=B5es?= Date: Thu, 3 Jul 2025 17:51:43 +0100 Subject: [PATCH] Fix ResolveToken for TypeSpec with MVAR - Now checking if caller or caller generic type is null. --- src/CLR/Core/TypeSystem.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/CLR/Core/TypeSystem.cpp b/src/CLR/Core/TypeSystem.cpp index 3a0253c9b0..2dde482801 100644 --- a/src/CLR/Core/TypeSystem.cpp +++ b/src/CLR/Core/TypeSystem.cpp @@ -1046,6 +1046,13 @@ bool CLR_RT_TypeDef_Instance::ResolveToken( else { // elem.DataType == DATATYPE_MVAR + + // Use the *caller's* bound genericType (Stack, etc.) + if (caller == nullptr || caller->genericType == nullptr) + { + return false; + } + CLR_RT_GenericParam_Index gpIdx; caller->assembly->FindGenericParamAtMethodDef(*caller, elem.GenericParamPosition, gpIdx); auto &gp = caller->assembly->crossReferenceGenericParam[gpIdx.GenericParam()];