anchor.diff:        CollectionElementImpl thenElement,
         Token? elseToken,
         CollectionElementImpl? elseElement) {
  -    if (thenElement == _invalidCollectionElement ||
  -        elseElement == _invalidCollectionElement) {
  -      push(_invalidCollectionElement);
  -    } else if (enableControlFlowCollections) {
  -      push(
  -        IfElementImpl(
  -          ifKeyword: ifToken,
  -          leftParenthesis: condition.leftParenthesis,
  -          condition: condition.expression,
  -          caseClause: null,
  -          rightParenthesis: condition.rightParenthesis,
  -          thenElement: thenElement,
  -          elseKeyword: elseToken,
  -          elseElement: elseElement,
  -        ),
  -      );
  -    } else {
  -      _reportFeatureNotEnabled(
  -        feature: ExperimentalFeatures.control_flow_collections,
  -        startToken: ifToken,
  -      );
  -      push(_invalidCollectionElement);
  -    }
  +    push(
  +      IfElementImpl(
  +        ifKeyword: ifToken,
  +        leftParenthesis: condition.leftParenthesis,
  +        condition: condition.expression,
  +        caseClause: null,
  +        rightParenthesis: condition.rightParenthesis,
  +        thenElement: thenElement,
  +        elseKeyword: elseToken,
  +        elseElement: elseElement,
  +      ),
  +    );
     }
   
     void reportErrorIfNullableType(Token? questionMark) {
  
positive.code:     assert(optional(']', rightBracket));
      debugEvent("LiteralList");
  
      if (enableControlFlowCollections || enableSpreadCollections) {
        List<CollectionElement> elements = popCollectionElements(count);
        var typeArguments = pop() as TypeArgumentList?;
  
        // TODO(danrubel): Remove this and _InvalidCollectionElement
        // once control flow and spread collection support is enabled by default
        elements.removeWhere((e) => e == _invalidCollectionElement);
  
        push(ast.listLiteral(
            constKeyword, typeArguments, leftBracket, elements, rightBracket));
      } else {
        var elements = popTypedList<Expression>(count) ?? const [];
        var typeArguments = pop() as TypeArgumentList?;
  
        List<Expression> expressions = <Expression>[];
        for (var elem in elements) {
          expressions.add(elem);
        }
  
        push(ast.listLiteral(
            constKeyword, typeArguments, leftBracket, expressions, rightBracket));
      }
    }
  
    @override
  
negative.code:         messageOperatorWithTypeParameters,
          messagePositionalAfterNamedArgument,
          templateDuplicateLabelInSwitchStatement,
          templateExpectedIdentifier,
          templateExperimentNotEnabled,
          templateExtraneousModifier,
          templateInternalProblemUnhandled;
  import 'package:_fe_analyzer_shared/src/parser/parser.dart'
      show
          Assert,
  