public unsafe override bool ComputeContainsGCPointers(DefType type) { if (type.IsTemplateCanonical()) { return type.ComputeTemplate().RuntimeTypeHandle.ToEETypePtr()->HasGCPointers; } else { if (type.RetrieveRuntimeTypeHandleIfPossible()) { return type.RuntimeTypeHandle.ToEETypePtr()->HasGCPointers; } return type.GetOrCreateTypeBuilderState().InstanceGCLayout != null; } }