From: Stone Gislason Date: Thu, 19 Mar 2015 21:50:20 +0000 (+0000) Subject: [eval] Allow class attributes X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=12ee824f5f6ade2ed04f0cfb64646ed87f641249;p=mono.git [eval] Allow class attributes --- diff --git a/mcs/class/Mono.CSharp/Test/Evaluator/TypesTest.cs b/mcs/class/Mono.CSharp/Test/Evaluator/TypesTest.cs index c124ad3739f..47aee14e4c5 100644 --- a/mcs/class/Mono.CSharp/Test/Evaluator/TypesTest.cs +++ b/mcs/class/Mono.CSharp/Test/Evaluator/TypesTest.cs @@ -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 diff --git a/mcs/mcs/eval.cs b/mcs/mcs/eval.cs index 031da518455..40eff050087 100644 --- a/mcs/mcs/eval.cs +++ b/mcs/mcs/eval.cs @@ -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: