anchor.diff:    }
   
     Expression toExpression() {
  -    if (_expression != null) return _expression;
  +    if (_expression != null) return _expression!;
       var block = toReturn();
       var s = block.statements;
       if (s.length == 1 && s.first is Return) {
  -      return _expression = (s.first as Return).value;
  +      return (_expression = (s.first as Return).value)!;
       }
       // Wrap it in an immediately called function to get in expression context.
       return _expression = _toInvokedFunction(block);
  
positive.code:   /// 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;
  
    MetaLet(this.variables, this.body, {this.statelessResult = false});
  
  
negative.code: /// Because this deals with JS AST nodes, it is not aware of any Dart semantics
  /// around statelessness (such as `final` variables). [variables] should not
  /// be created for these Dart expressions.
  class MetaLet extends Expression {
    /// Creates a temporary to contain the value of [expr]. The temporary can be
    /// used multiple times in the resulting expression. For example:
  