[eval] Allow class attributes
authorStone Gislason <steinar.gislason@gmail.com>
Thu, 19 Mar 2015 21:50:20 +0000 (21:50 +0000)
committerStone Gislason <steinar.gislason@gmail.com>
Thu, 19 Mar 2015 21:50:20 +0000 (21:50 +0000)
mcs/class/Mono.CSharp/Test/Evaluator/TypesTest.cs
mcs/mcs/eval.cs

index c124ad3739feaa4306b1096c8f4f248096b4840e..47aee14e4c57d9f357f359f3ce70ca1d1b1a5ec1 100644 (file)
@@ -114,5 +114,16 @@ namespace MonoTests.EvaluatorTest
                        object res = Evaluator.Evaluate ("d();");
                        Assert.AreEqual (7, res);
                }
+
+               [Test]
+               public void ClassWithAttribute ()
+               {
+                       Evaluator.Run ("public class A : System.Attribute { }");
+                       Evaluator.Run ("[A] public class B {}");
+                       Evaluator.Run ("var attr = new B().GetType().GetCustomAttributes(false)[0];");
+
+                       object res = Evaluator.Evaluate ("attr.GetType().Name;");
+                       Assert.AreEqual ("A", res);
+               }
        }
 }
\ No newline at end of file
index 031da5184551ab74f7987535f2ac436d29894366..40eff050087444b211dd32538ec2b031f1eb526f 100644 (file)
@@ -521,6 +521,7 @@ namespace Mono.CSharp
                        // These are toplevels
                        case Token.EXTERN:
                        case Token.OPEN_BRACKET:
+                       case Token.OPEN_BRACKET_EXPR:
                        case Token.ABSTRACT:
                        case Token.CLASS:
                        case Token.ENUM: