internal override MSAst.Expression Transform(AstGenerator ag) { MSAst.Expression result; if (_else != null) { result = ag.Transform(_else); } else { result = AstUtils.Empty(); } // Now build from the inside out int i = _tests.Length; while (i-- > 0) { IfStatementTest ist = _tests[i]; result = ag.AddDebugInfoAndVoid( Ast.Condition( ag.TransformAndDynamicConvert(ist.Test, typeof(bool)), ag.TransformMaybeSingleLineSuite(ist.Body, ist.Test.Start), result ), new SourceSpan(ist.Start, ist.Header) ); } return result; }