Merge pull request #160 from garuma/tpl-dataflow-plumbing
[mono.git] / mcs / mcs / decl.cs
index 6d6d367bca4c7f93d718c65a31683eac2d39c390..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)
@@ -857,10 +857,6 @@ namespace Mono.CSharp {
                        get { return null; }
                }
 
-               public virtual bool HasUnresolvedConstraints {
-                       get { return false; }
-               }
-
                public bool IsObsolete {
                        get {
                                if (GetAttributeObsolete () != null)
@@ -904,6 +900,7 @@ namespace Mono.CSharp {
                        MissingDependency_Undetected = 1 << 4,
                        MissingDependency = 1 << 5,
                        HasDynamicElement = 1 << 6,
+                       ConstraintsChecked = 1 << 7,
 
                        IsAccessor = 1 << 9,            // Method is an accessor
                        IsGeneric = 1 << 10,            // Member contains type arguments
@@ -913,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;
@@ -1005,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; }
                }