using System; class B { } class C : B { } interface I : IA { } interface IA { } struct S { } delegate dynamic D (dynamic d); class DynamicAssignments { static int Main () { dynamic d1 = null; dynamic d2 = null; d1 = d2; d2 = d1; B g1 = null; B g2 = null; g1 = g2; g2 = g1; B> g_n1 = null; B> g_n2 = null; g_n1 = g_n2; g_n2 = g_n1; object[] o = null; dynamic[] d = o; C a = null; B b = a; a = (C)b; a = (C)b; I io = null; IA id = io; IA ia_o = null; IA ia_d = ia_o; S s_d = new S (); S s_o = s_d; S? s_o_n = s_d; D del = delegate (object del_arg) { return (object) null; }; return 0; } }