private CSharpCompilation Rewrite(CSharpCompilation compilation) { var rewrittenTrees = new List<SyntaxTree>(); foreach (var tree in compilation.SyntaxTrees) { var semanticModel = compilation.GetSemanticModel(tree, ignoreAccessibility: true); var rewriter = new ExpressionRewriter(semanticModel); var rewrittenTree = tree.WithRootAndOptions(rewriter.Visit(tree.GetRoot()), tree.Options); rewrittenTrees.Add(rewrittenTree); } return compilation.RemoveAllSyntaxTrees().AddSyntaxTrees(rewrittenTrees); }