internal static BoundNode Rewrite(
     GenerateThisReference getThisReference,
     Conversions conversions,
     ImmutableDictionary<string, DisplayClassVariable> displayClassVariables,
     BoundNode node,
     DiagnosticBag diagnostics)
 {
     var rewriter = new CapturedVariableRewriter(getThisReference, conversions, displayClassVariables, diagnostics);
     return rewriter.Visit(node);
 }
 private CapturedVariableRewriter(
     GenerateThisReference getThisReference,
     Conversions conversions,
     ImmutableDictionary <string, DisplayClassVariable> displayClassVariables,
     DiagnosticBag diagnostics)
 {
     _getThisReference      = getThisReference;
     _conversions           = conversions;
     _displayClassVariables = displayClassVariables;
     _diagnostics           = diagnostics;
 }