public override IEnumerable <SyntaxNode> BuildSyntax(IDom item) { var itemAsT = item as T; SyntaxNode node; if (itemAsT.Condition == null) // TODO: Isn't condition null in a ForEach? { node = SyntaxFactory.EmptyStatement(); } // This shold not happen else { var statement = RoslynCSharpUtilities.BuildStatement(itemAsT.Statements, itemAsT, WhitespaceLookup); var condition = (ExpressionSyntax)RDom.CSharp.GetSyntaxNode(itemAsT.Condition); node = MakeSyntax(itemAsT, condition, statement); } var leadingTrivia = BuildSyntaxHelpers.LeadingTrivia(itemAsT, OutputContext); node = node.WithLeadingTrivia(leadingTrivia); node = BuildSyntaxHelpers.AttachWhitespace(node, itemAsT.Whitespace2Set, WhitespaceLookup); node = AdjustWhitespace(node, itemAsT, WhitespaceLookup); return(node.PrepareForBuildSyntaxOutput(itemAsT, OutputContext)); }