linux-packaging-mono/mcs/tests/gtest-autoproperty-03.cs
Xamarin Public Jenkins 6992685b86 Imported Upstream version 4.2.0.179
Former-commit-id: 0a113cb3a6feb7873f632839b1307cc6033cd595
2015-11-10 14:54:39 +00:00

46 lines
1.3 KiB
C#

// Make sure that the field and accessor methods of an automatic property have the CompilerGenerated attribute
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Diagnostics;
public class Test
{
public string Foo { get; set; }
public static int Main ()
{
FieldInfo [] fields = typeof (Test).GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
if (!(fields.Length > 0))
return 1;
object [] field_atts = fields[0].GetCustomAttributes (false);
if (field_atts.Length != 2)
return 2;
if (field_atts[1].GetType() != typeof (DebuggerBrowsableAttribute))
return 3;
if (field_atts[0].GetType() != typeof (CompilerGeneratedAttribute))
return 4;
if (fields [0].Name != "<Foo>k__BackingField")
return 10;
PropertyInfo property = typeof (Test).GetProperty ("Foo");
MethodInfo get = property.GetGetMethod (false);
object [] get_atts = get.GetCustomAttributes (false);
if (!(get_atts.Length > 0))
return 4;
if (get_atts[0].GetType() != typeof (CompilerGeneratedAttribute))
return 5;
MethodInfo set = property.GetSetMethod (false);
object [] set_atts = set.GetCustomAttributes (false);
if (!(set_atts.Length > 0))
return 6;
if (set_atts[0].GetType() != typeof (CompilerGeneratedAttribute))
return 7;
return 0;
}
}