void EmitConstructors ()
{
if (instance_constructors == null)
return;
if (spec.IsAttribute && IsExposedFromAssembly () && RootContext.VerifyClsCompliance && IsClsComplianceRequired ()) {
bool has_compliant_args = false;
foreach (Constructor c in instance_constructors) {
try {
c.Emit ();
}
catch (Exception e) {
throw new InternalErrorException (c, e);
}
if (has_compliant_args)
continue;
has_compliant_args = c.HasCompliantArgs;
}
if (!has_compliant_args)
Report.Warning (3015, 1, Location, "`{0}' has no accessible constructors which use only CLS-compliant types", GetSignatureForError ());
} else {
foreach (Constructor c in instance_constructors) {
try {
c.Emit ();
}
catch (Exception e) {
throw new InternalErrorException (c, e);
}
}
}
}