Remove IsGeneric from DeclSpace
[mono.git] / mcs / mcs / dynamic.cs
index b3daab895b22702d49140573cd5fe70be149381b..3524196957edf6668ed624c335d98063ce988d06 100644 (file)
@@ -6,6 +6,7 @@
 // Dual licensed under the terms of the MIT X11 or GNU GPL
 //
 // Copyright 2009 Novell, Inc
+// Copyright 2011 Xamarin Inc.
 //
 
 using System;
@@ -252,7 +253,7 @@ namespace Mono.CSharp
                protected CSharpBinderFlags flags;
 
                TypeSpec binder_type;
-               TypeParameter[] context_mvars;
+               TypeParameters context_mvars;
 
                public DynamicExpressionStatement (IDynamicBinder binder, Arguments args, Location loc)
                {
@@ -267,6 +268,11 @@ namespace Mono.CSharp
                        }
                }
 
+               public override bool ContainsEmitWithAwait ()
+               {
+                       return arguments.ContainsEmitWithAwait ();
+               }
+
                public override Expression CreateExpressionTree (ResolveContext ec)
                {
                        ec.Report.Error (1963, loc, "An expression tree cannot contain a dynamic operation");
@@ -343,7 +349,7 @@ namespace Mono.CSharp
                        var site_container = ec.CreateDynamicSite ();
 
                        if (context_mvars != null) {
-                               TypeParameter[] tparam;
+                               TypeParameters tparam;
                                TypeContainer sc = site_container;
                                do {
                                        tparam = sc.CurrentTypeParameters;
@@ -460,7 +466,7 @@ namespace Mono.CSharp
                                return;
 
                        if (del_type_instance_access == null) {
-                               var dt = d.CurrentType.DeclaringType.MakeGenericType (module, context_mvars.Select (l => l.Type).ToArray ());
+                               var dt = d.CurrentType.DeclaringType.MakeGenericType (module, context_mvars.Types);
                                del_type_instance_access = new TypeExpression (MemberCache.GetMember (dt, d.CurrentType), loc);
                        }
 
@@ -476,7 +482,7 @@ namespace Mono.CSharp
                        if (inflate_using_mvar || context_mvars == null) {
                                gt = site_container.CurrentType;
                        } else {
-                               gt = site_container.CurrentType.MakeGenericType (module, context_mvars.Select (l => l.Type).ToArray ());
+                               gt = site_container.CurrentType.MakeGenericType (module, context_mvars.Types);
                        }
 
                        // When site container already exists the inflated version has to be
@@ -719,7 +725,7 @@ namespace Mono.CSharp
 
        class DynamicInvocation : DynamicExpressionStatement, IDynamicBinder
        {
-               ATypeNameExpression member;
+               readonly ATypeNameExpression member;
 
                public DynamicInvocation (ATypeNameExpression member, Arguments args, Location loc)
                        : base (null, args, loc)
@@ -951,7 +957,7 @@ namespace Mono.CSharp
 
        sealed class DynamicSiteClass : HoistedStoreyClass
        {
-               public DynamicSiteClass (TypeContainer parent, MemberBase host, TypeParameter[] tparams)
+               public DynamicSiteClass (TypeContainer parent, MemberBase host, TypeParameters tparams)
                        : base (parent, MakeMemberName (host, "DynamicSite", parent.DynamicSitesCounter, tparams, Location.Null), tparams, Modifiers.STATIC)
                {
                        parent.DynamicSitesCounter++;