in src/Refasmer/Importer/ImportLogic.cs [376:396]
private void ImportGenericConstraints( EntityHandle entityHandle, GenericParameterHandleCollection srcParams )
{
var srcConstraints = new List<Tuple<GenericParameterHandle, GenericParameterConstraintHandle>>();
foreach (var srcParamHandle in srcParams)
{
var srcParam = _reader.GetGenericParameter(srcParamHandle);
var dstParamHandle = _builder.AddGenericParameter(entityHandle, srcParam.Attributes,
ImportValue(srcParam.Name), srcParam.Index);
_genericParameterCache.Add(srcParamHandle, dstParamHandle);
srcConstraints.AddRange(srcParam.GetConstraints().Select(x => Tuple.Create(dstParamHandle, x)));
Trace?.Invoke($"Imported generic parameter {_reader.ToString(srcParam)} -> {RowId(dstParamHandle)}");
}
foreach (var (dstParam, srcConstraintHandle) in srcConstraints)
ImportEntity(srcConstraintHandle, _genericParameterConstraintCache,
_reader.GetGenericParameterConstraint,
src => _builder.AddGenericParameterConstraint(dstParam, Import(src.Type)),
_reader.ToString, IsNil);
}