anchor.diff:      var thenElement = pop() as CollectionElementImpl;
       var condition = pop() as _ParenthesizedCondition;
       var ifToken = pop() as Token;
  -    pushIfControlFlowInfo(
  -        ifToken, condition, thenElement, elseToken, elseElement);
  +    push(
  +      IfElementImpl(
  +        ifKeyword: ifToken,
  +        leftParenthesis: condition.leftParenthesis,
  +        condition: condition.expression,
  +        caseClause: null,
  +        rightParenthesis: condition.rightParenthesis,
  +        thenElement: thenElement,
  +        elseKeyword: elseToken,
  +        elseElement: elseElement,
  +      ),
  +    );
     }
   
     @override
  
positive.code:     push(ast.instanceCreationExpression(
          token, constructorName, arguments.argumentList,
          typeArguments: typeArguments));
    }
  
    VariableDeclaration _makeVariableDeclaration({
      required SimpleIdentifierImpl name,
      required Token? equals,
      required ExpressionImpl? initializer,
    }) {
      return VariableDeclarationImpl(
        name2: name.token,
        equals: equals,
        initializer: initializer,
      );
    }
  
    void _reportFeatureNotEnabled({
  
negative.code:     var thenElement = pop() as CollectionElementImpl;
      var condition = pop() as _ParenthesizedCondition;
      var ifToken = pop() as Token;
      push(
        IfElementImpl(
          ifKeyword: ifToken,
          leftParenthesis: condition.leftParenthesis,
          condition: condition.expression,
          caseClause: null,
          rightParenthesis: condition.rightParenthesis,
          thenElement: thenElement,
          elseKeyword: null,
          elseElement: null,
        ),
      );
    }
  
    @override
  