protected virtual unsafe void DefineGenericTypeParameter(TypeBuilder typeBuilder, GenericTypeParameterBuilder paramBuilder, BCSYM_GenericParam* pParam) { paramBuilder.SetGenericParameterAttributes(GetGenericParameterAttributes(pParam)); List<Type> list = new List<Type>(); for (BCSYM_GenericConstraint* constraintPtr = *((BCSYM_GenericConstraint**) (pParam + 0x54)); constraintPtr != null; constraintPtr = *((BCSYM_GenericConstraint**) (constraintPtr + 8))) { if (((byte) (*(((byte*) constraintPtr)) == 0x26)) != 0) { BCSYM* pSymbol = BCSYM.DigThroughNamedType(*((BCSYM* modopt(IsConst) modopt(IsConst)*) (constraintPtr + 12))); Type item = this.GetType(typeBuilder, pSymbol); if (BCSYM.IsInterface(pSymbol)) { list.Add(item); } else { paramBuilder.SetBaseTypeConstraint(item); } } } if (list.Count > 0) { paramBuilder.SetInterfaceConstraints(list.ToArray()); } }
public unsafe PropertyAndField FindPropertyAndField(BCSYM_NamedRoot* pAnonymousType, BCSYM_GenericParam* pParam, TypeBuilder typeBuilder, bool* modopt(IsImplicitlyDereferenced) hasKey)