https://bugzilla.novell.com/show_bug.cgi?id=642130
https://bugzilla.novell.com/show_bug.cgi?id=642130#c0 Summary: Activator.CreateInstance Method (Type, Object[]) does not work with compiler service (Mono.CSharp) Classification: Mono Product: Mono: Compilers Version: SVN Platform: x86 OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: C# AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.53 Safari/534.3 following code does NOT work in mono 2.8 master from today when executing with Mono.Csharp compiler service. It DOES work in mono 2.6.7, so it seems like regression. It's easy to reproduce error with csharp repl. var logicians = new[] { new { Name = "Alfred", Surname = "Tarski", Age = 33 }, new { Name = "Gotlob", Surname = "Frege", Age = 42 }, new { Name = "Kurt", Surname = "Gödel", Age = 22 }, new { Name = "Unknown ", Surname = "Logican", Age = 33 }, new { Name = "Józef", Surname = "Bocheński", Age = 22 }, new { Name = "Stanisław", Surname = "Leśniewski", Age = 79 }, new { Name = "Saul", Surname = "Kripke", Age = 40 }, new { Name = "George", Surname = "Boolos", Age = 79 } }; var elementType = logicians.GetType().GetElementType(); Type genericType = typeof(List<>); var targetType = genericType.MakeGenericType(new Type[]{elementType}); Activator.CreateInstance(targetType,2); ----------------------------------------------- System.NotSupportedException: Operation is not supported. at System.Reflection.MonoGenericClass.GetConstructors (BindingFlags bf) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type, BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type, System.Object[] args, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type, System.Object[] args) [0x00000] in <filename unknown>:0 at Class11.Host (System.Object& $retval) [0x00000] in <filename unknown>:0 at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00000] in <filename unknown>:0 at Mono.CSharpShell.Evaluate (System.String input) [0x00000] in <filename unknown>:0 Reproducible: Always Steps to Reproduce: 1.open csharp (from master 2.8 27th sep) 2.paste example code var logicians = new[] { new { Name = "Alfred", Surname = "Tarski", Age = 33 }, new { Name = "Gotlob", Surname = "Frege", Age = 42 }, new { Name = "Kurt", Surname = "Gödel", Age = 22 }, new { Name = "Unknown ", Surname = "Logican", Age = 33 }, new { Name = "Józef", Surname = "Bocheński", Age = 22 }, new { Name = "Stanisław", Surname = "Leśniewski", Age = 79 }, new { Name = "Saul", Surname = "Kripke", Age = 40 }, new { Name = "George", Surname = "Boolos", Age = 79 } }; var elementType = logicians.GetType().GetElementType(); Type genericType = typeof(List<>); var targetType = genericType.MakeGenericType(new Type[]{elementType}); Activator.CreateInstance(targetType,2); 3. press enter :) Actual Results: System.NotSupportedException: Operation is not supported. at System.Reflection.MonoGenericClass.GetConstructors (BindingFlags bf) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type, BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type, System.Object[] args, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0 at System.Activator.CreateInstance (System.Type type, System.Object[] args) [0x00000] in <filename unknown>:0 at Class11.Host (System.Object& $retval) [0x00000] in <filename unknown>:0 at Mono.CSharp.Evaluator.Evaluate (System.String input, System.Object& result, System.Boolean& result_set) [0x00000] in <filename unknown>:0 at Mono.CSharpShell.Evaluate (System.String input) [0x00000] in <filename unknown>:0 Expected Results: creation of empty generic list of anonymous class code DOES work when you compile and run it as normal program code in 2.8 or 2.6.7 (without using Mono.CSharp), so it seems like Mono.CShapr error -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
