Imported Upstream version 4.8.0.309

Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-11-10 13:04:39 +00:00
parent ee1447783b
commit 94b2861243
4912 changed files with 390737 additions and 49310 deletions

View File

@@ -903,7 +903,13 @@ namespace MonoTests.System
Assert.AreEqual (1, res.Length, "#1");
}
abstract class Abs
abstract class Root
{
[MyAttribute]
public abstract void Foo ();
}
abstract class Abs : Root
{
public abstract string Name { get; set; }
}
@@ -915,6 +921,8 @@ namespace MonoTests.System
get { return ""; }
set {}
}
public override void Foo () { }
}
class Sub: Base
@@ -1032,6 +1040,27 @@ namespace MonoTests.System
a.GetHashCode ();
}
[Test]
public void DerivedClassOverrideHasInhertedAttributeFromAbstractRoot ()
{
// regression test for #44010
// we have
// abstract class Root {
// [MyAttribute]
// public abstract void Foo ();
// }
// abstract class Abs : Root { }
// class Base : Abs {
// public override void Foo () { }
// }
// note that Abs does not itself override Foo.
var bt = typeof(Base);
var m = bt.GetMethod ("Foo");
var attribute = Attribute.GetCustomAttribute (m, typeof (MyAttribute), true);
Assert.IsNotNull (attribute);
}
class ArrayAttribute : Attribute
{
#pragma warning disable 414