Inflate custom site container delegates correctly.
[mono.git] / mcs / mcs / attribute.cs
index 2a26b99e6d51b9a4ef02f3527a50ea02368f3ef3..8330f5000763fa5d98ef0641cd9d210cf3aa5a0c 100644 (file)
@@ -308,7 +308,7 @@ namespace Mono.CSharp {
 
                public bool HasSecurityAttribute {
                        get {
-                               PredefinedAttribute pa = PredefinedAttributes.Get.Security;
+                               PredefinedAttribute pa = context.Compiler.PredefinedAttributes.Security;
                                return pa.IsDefined && TypeSpec.IsBaseClass (type, pa.Type, false);
                        }
                }
@@ -337,7 +337,7 @@ namespace Mono.CSharp {
 
                void ApplyModuleCharSet (ResolveContext rc)
                {
-                       if (Type != PredefinedAttributes.Get.DllImport)
+                       if (Type != context.Compiler.PredefinedAttributes.DllImport)
                                return;
 
                        if (!RootContext.ToplevelTypes.HasDefaultCharSet)
@@ -443,10 +443,10 @@ namespace Mono.CSharp {
 
                                a.Resolve (ec);
 
-                               Expression member = Expression.MemberLookup (ec, ec.CurrentType, Type, name, 0, false, loc);
+                               Expression member = Expression.MemberLookup (ec, ec.CurrentType, Type, name, 0, MemberLookupRestrictions.ExactArity, loc);
 
                                if (member == null) {
-                                       member = Expression.MemberLookup (null, ec.CurrentType, Type, name, 0, false, loc);
+                                       member = Expression.MemberLookup (null, ec.CurrentType, Type, name, 0, MemberLookupRestrictions.ExactArity, loc);
 
                                        if (member != null) {
                                                // TODO: ec.Report.SymbolRelatedToPreviousError (member);
@@ -522,7 +522,7 @@ namespace Mono.CSharp {
                public string GetValidTargets ()
                {
                        StringBuilder sb = new StringBuilder ();
-                       AttributeTargets targets = Type.GetAttributeUsage (PredefinedAttributes.Get.AttributeUsage).ValidOn;
+                       AttributeTargets targets = Type.GetAttributeUsage (context.Compiler.PredefinedAttributes.AttributeUsage).ValidOn;
 
                        if ((targets & AttributeTargets.Assembly) != 0)
                                sb.Append ("assembly, ");
@@ -993,7 +993,7 @@ namespace Mono.CSharp {
 
                public bool IsInternalMethodImplAttribute {
                        get {
-                               if (Type != PredefinedAttributes.Get.MethodImpl)
+                               if (Type != context.Compiler.PredefinedAttributes.MethodImpl)
                                        return false;
 
                                MethodImplOptions options;
@@ -1048,7 +1048,9 @@ namespace Mono.CSharp {
                        if (ctor == null)
                                return;
 
-                       AttributeUsageAttribute usage_attr = Type.GetAttributeUsage (PredefinedAttributes.Get.AttributeUsage);
+                       var predefined = context.Compiler.PredefinedAttributes;
+
+                       AttributeUsageAttribute usage_attr = Type.GetAttributeUsage (predefined.AttributeUsage);
                        if ((usage_attr.ValidOn & Target) == 0) {
                                Report.Error (592, Location, "The attribute `{0}' is not valid on this declaration type. " +
                                              "It is valid on `{1}' declarations only",
@@ -1056,8 +1058,6 @@ namespace Mono.CSharp {
                                return;
                        }
 
-                       var predefined = PredefinedAttributes.Get;
-
                        AttributeEncoder encoder = new AttributeEncoder (false);
 
                        if (PosArguments != null) {
@@ -1560,7 +1560,7 @@ namespace Mono.CSharp {
 
                public static void VerifyModulesClsCompliance (CompilerContext ctx)
                {
-                       Module[] modules = GlobalRootNamespace.Instance.Modules;
+                       Module[] modules = ctx.GlobalRootNamespace.Modules;
                        if (modules == null)
                                return;
 
@@ -1659,9 +1659,7 @@ namespace Mono.CSharp {
                public readonly PredefinedAttribute StructLayout;
                public readonly PredefinedAttribute FieldOffset;
 
-               public static PredefinedAttributes Get = new PredefinedAttributes ();
-
-               private PredefinedAttributes ()
+               public PredefinedAttributes ()
                {
                        ParamArray = new PredefinedAttribute ("System", "ParamArrayAttribute");
                        Out = new PredefinedAttribute ("System.Runtime.InteropServices", "OutAttribute");
@@ -1713,11 +1711,6 @@ namespace Mono.CSharp {
                                ((PredefinedAttribute) fi.GetValue (this)).Initialize (ctx, true);
                        }
                }
-
-               public static void Reset ()
-               {
-                       Get = new PredefinedAttributes ();
-               }
        }
 
        public class PredefinedAttribute