override internal void Prepare(TypeBuilder builder) { if (Type.IsCanonicalSubtype(CanonicalFormKind.Any)) Environment.FailFast("Canonical types do not have EETypes"); if (Type.IsNullable) { Debug.Assert(Type.Instantiation.Length == 1); builder.RegisterForPreparation(Type.Instantiation[0]); } else builder.RegisterForPreparation(Type); }
override internal void Prepare(TypeBuilder builder) { if (Type.IsCanonicalSubtype(CanonicalFormKind.Any)) Environment.FailFast("Canonical types do not have EETypes"); builder.RegisterForPreparation(Type); }
override internal void Prepare(TypeBuilder builder) { if (InterfaceType.IsCanonicalSubtype(CanonicalFormKind.Any)) Environment.FailFast("Unable to compute call information for a canonical interface"); builder.RegisterForPreparation(InterfaceType); }
override internal void Prepare(TypeBuilder builder) { if (Type.IsCanonicalSubtype(CanonicalFormKind.Any)) Environment.FailFast("Unable to compute static field locations for a canonical type."); builder.RegisterForPreparation(Type); }
internal unsafe override void Prepare(TypeBuilder builder) { builder.RegisterForPreparation(ContainingType); }
override internal void Prepare(TypeBuilder builder) { builder.RegisterForPreparation(Type); }
internal override void Prepare(TypeBuilder builder) { if (Type.IsCanonicalSubtype(CanonicalFormKind.Universal)) Environment.FailFast("Universal shared generics do not have a defined size"); builder.RegisterForPreparation(Type); }
internal unsafe override void Prepare(TypeBuilder builder) { if (Method.IsCanonicalMethod(CanonicalFormKind.Any)) Environment.FailFast("Ldtoken is not permitted for a canonical method"); // Do not use builder.PrepareMethod here. That // would prepare the dictionary for the method, // and if the method is abstract, there is no // dictionary. Also, the dictionary is not necessary // to create the ldtoken. builder.RegisterForPreparation(Method.OwningType); foreach (var type in Method.Instantiation) builder.RegisterForPreparation(type); }
internal unsafe override void Prepare(TypeBuilder builder) { if (ContainingType.IsCanonicalSubtype(CanonicalFormKind.Any)) Environment.FailFast("Ldtoken is not permitted for a canonical field"); builder.RegisterForPreparation(ContainingType); }
override internal void Prepare(TypeBuilder builder) { if (ConstraintType.IsCanonicalSubtype(CanonicalFormKind.Any) || ConstrainedMethod.IsCanonicalMethod(CanonicalFormKind.Any)) Environment.FailFast("Unable to compute call information for a canonical type/method."); builder.RegisterForPreparation(ConstraintType); // Do not use builder.PrepareMethod here. That // would prepare the dictionary for the method, // and if the method is abstract, there is no // dictionary. Also, the dictionary is not necessary // to create the ldtoken. builder.RegisterForPreparation(ConstrainedMethod.OwningType); foreach (var type in ConstrainedMethod.Instantiation) builder.RegisterForPreparation(type); }
override internal void Prepare(TypeBuilder builder) { if (ConstraintType.IsCanonicalSubtype(CanonicalFormKind.Any) || ConstrainedMethodType.IsCanonicalSubtype(CanonicalFormKind.Any)) Environment.FailFast("Unable to compute call information for a canonical type/method."); builder.RegisterForPreparation(ConstraintType); builder.RegisterForPreparation(ConstrainedMethodType); }