anchor.diff:    /// We run [toExpression] implicitly when the JS AST is visited, to get the
     /// transformation to happen before the tree is printed.
     /// This happens multiple times, so ensure the expression form is cached.
  -  Expression _expression;
  +  Expression? _expression;
   
     MetaLet(this.variables, this.body, {this.statelessResult = false});
   
  
positive.code:     return super.toAssignExpression(left, op);
    }
  
    Expression _toAssign(Expression left, [String op]) {
      var exprs = body.toList();
      exprs.add(exprs.removeLast().toAssignExpression(left, op));
      return MetaLet(variables, exprs);
  
negative.code: 
    @override
    void visitChildren(NodeVisitor visitor) {
      // TODO(jmesserly): we special case visitors from js_ast.Template, because
      // it doesn't know about MetaLet. Should we integrate directly?
      if (visitor is InterpolatedNodeAnalysis ||
          visitor is InstantiatorGeneratorVisitor) {
        variables.values.forEach((v) => v.accept(visitor));
  