/// <summary> /// It is called very early therefore can resolve only predefined attributes /// </summary> void ResolveGlobalAttributes () { if (OptAttributes == null) return; if (!OptAttributes.CheckTargets ()) return; // FIXME: Define is wrong as the type may not exist yet var DefaultCharSet_attr = new PredefinedAttribute (this, "System.Runtime.InteropServices", "DefaultCharSetAttribute"); DefaultCharSet_attr.Define (); Attribute a = ResolveModuleAttribute (DefaultCharSet_attr); if (a != null) { has_default_charset = true; DefaultCharSet = a.GetCharSetValue (); switch (DefaultCharSet) { case CharSet.Ansi: case CharSet.None: break; case CharSet.Auto: DefaultCharSetType = TypeAttributes.AutoClass; break; case CharSet.Unicode: DefaultCharSetType = TypeAttributes.UnicodeClass; break; default: Report.Error (1724, a.Location, "Value specified for the argument to `{0}' is not valid", DefaultCharSet_attr.GetSignatureForError ()); break; } } }