Merge pull request #160 from garuma/tpl-dataflow-plumbing
[mono.git] / mcs / mcs / decl.cs
index 6a28995c8810dde0c3ac0425e12d4242007fd6c6..27f4879aedc092fb3cb589ae8723db9d219c2fa1 100644 (file)
@@ -686,9 +686,9 @@ namespace Mono.CSharp {
                        return true;
                }
 
-               public virtual IList<MethodSpec> LookupExtensionMethod (TypeSpec extensionType, string name, int arity, ref NamespaceContainer scope)
+               public virtual ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity)
                {
-                       return Parent.LookupExtensionMethod (extensionType, name, arity, ref scope);
+                       return Parent.LookupExtensionMethod (extensionType, name, arity);
                }
 
                public virtual FullNamedExpression LookupNamespaceAlias (string name)
@@ -910,11 +910,12 @@ namespace Mono.CSharp {
                        PendingMemberCacheMembers = 1 << 14,
                        PendingBaseTypeInflate = 1 << 15,
                        InterfacesExpanded = 1 << 16,
-                       IsNotRealProperty = 1 << 17,
+                       IsNotCSharpCompatible = 1 << 17,
                        SpecialRuntimeType = 1 << 18,
                        InflatedExpressionType = 1 << 19,
                        InflatedNullableType = 1 << 20,
                        GenericIterateInterface = 1 << 21,
+                       GenericTask = 1 << 22
                }
 
                protected Modifiers modifiers;
@@ -1002,6 +1003,18 @@ namespace Mono.CSharp {
                        }
                }
 
+               //
+               // Returns true for imported members which are not compatible with C# language
+               //
+               public bool IsNotCSharpCompatible {
+                       get {
+                               return (state & StateFlags.IsNotCSharpCompatible) != 0;
+                       }
+                       set {
+                               state = value ? state | StateFlags.IsNotCSharpCompatible : state & ~StateFlags.IsNotCSharpCompatible;
+                       }
+               }
+
                public bool IsPrivate {
                        get { return (modifiers & Modifiers.PRIVATE) != 0; }
                }