public void GotoLabel_Factory_ArgumentChecking() { // null AssertEx.Throws <ArgumentNullException>(() => CSharpStatement.GotoLabel(default(LabelTarget))); // type var l = Expression.Label(typeof(int)); AssertEx.Throws <ArgumentException>(() => CSharpStatement.GotoLabel(l)); }
public void GotoLabel_Visitor() { var l = Expression.Label(); var g = CSharpStatement.GotoLabel(l); var v = new V(); Assert.AreSame(g, v.Visit(g)); Assert.AreEqual(g.Kind, v.VisitedKind); }
public void GotoLabel_Properties() { var l = Expression.Label(); var g = CSharpStatement.GotoLabel(l); Assert.AreEqual(typeof(void), g.Type); Assert.AreEqual(CSharpExpressionType.Goto, g.CSharpNodeType); Assert.AreEqual(CSharpGotoKind.GotoLabel, g.Kind); Assert.AreSame(l, g.Target); Assert.IsTrue(g.CanReduce); }
public void GotoLabel_Update() { var l = Expression.Label(); var m = Expression.Label(); var g = CSharpStatement.GotoLabel(l); var u1 = g.Update(l); Assert.AreSame(g, u1); var u2 = g.Update(m); Assert.AreNotSame(g, u2); Assert.AreSame(m, u2.Target); }