anchor.diff:  
     @override
     Iterable<SyntacticEntity> get childEntities => new ChildEntities()
  -    ..add(ifKeyword)
  -    ..add(leftParenthesis)
  -    ..add(_condition)
  -    ..add(rightParenthesis)
  +    ..addAll(super.childEntities)
       ..add(_thenStatement)
       ..add(elseKeyword)
       ..add(_elseStatement);
  -
  -  @override
  -  Expression get condition => _condition;
  -
  -  @override
  -  void set condition(Expression expression) {
  -    _condition = _becomeParentOf(expression as ExpressionImpl);
  -  }
   
     @override
     Statement get elseStatement => _elseStatement;
  
positive.code:   Iterable<SyntacticEntity> get childEntities => new ChildEntities()
      ..addAll(super.childEntities)
      ..add(_thenElement)
      ..add(_elseElement);
  
    @override
  
negative.code:   /// Initialize a newly created if statement. The [elseKeyword] and
    /// [elseStatement] can be `null` if there is no else clause.
    IfStatementImpl(
        Token ifKeyword,
        Token leftParenthesis,
        ExpressionImpl condition,
        Token rightParenthesis,
        StatementImpl thenStatement,
        Token elseKeyword,
        StatementImpl elseStatement) {
      this.ifKeyword = ifKeyword;
      this.leftParenthesis = leftParenthesis;
      _condition = _becomeParentOf(condition);
      this.rightParenthesis = rightParenthesis;
      _thenStatement = _becomeParentOf(thenStatement);
      this.elseKeyword = elseKeyword;
      _elseStatement = _becomeParentOf(elseStatement);
    }
  
  