fe777c5c82
Former-commit-id: 6a76a29bd07d86e57c6c8da45c65ed5447d38a61
61 lines
1.0 KiB
C#
61 lines
1.0 KiB
C#
using System;
|
|
|
|
namespace TestAttributesCollecting
|
|
{
|
|
class A : Attribute
|
|
{
|
|
}
|
|
|
|
public partial class X
|
|
{
|
|
[A]
|
|
partial void Foo<[A] T>(/*[A]*/ int p);
|
|
}
|
|
|
|
public partial class X
|
|
{
|
|
partial void Foo<T> (int p)
|
|
{
|
|
int i;
|
|
}
|
|
}
|
|
|
|
public partial class Y
|
|
{
|
|
partial void Foo ()
|
|
{
|
|
int i;
|
|
}
|
|
}
|
|
|
|
public partial class Y
|
|
{
|
|
[CLSCompliant (true)]
|
|
partial void Foo ();
|
|
}
|
|
|
|
class Program
|
|
{
|
|
public static int Main ()
|
|
{
|
|
var m = typeof (X).GetMethod ("Foo", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
|
|
var x = m.GetCustomAttributes (true);
|
|
Console.WriteLine (x.Length);
|
|
if (x.Length != 1)
|
|
return 1;
|
|
|
|
var ga = m.GetGenericArguments ();
|
|
x = ga [0].GetCustomAttributes (false);
|
|
if (x.Length != 1)
|
|
return 2;
|
|
|
|
x = typeof (Y).GetMethod ("Foo", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetCustomAttributes (true);
|
|
Console.WriteLine (x.Length);
|
|
if (x.Length != 1)
|
|
return 3;
|
|
|
|
return 0;
|
|
}
|
|
}
|
|
}
|