anchor.diff:    void endExtensionDeclaration(Token extensionKeyword, Token? typeKeyword,
         Token onKeyword, Token? showKeyword, Token? hideKeyword, Token token) {
       if (typeKeyword != null && !enableExtensionTypes) {
  -      var feature = ExperimentalFeatures.extension_types;
  -      handleRecoverableError(
  -          templateExperimentNotEnabled.withArguments(
  -            feature.enableString,
  -            _versionAsString(ExperimentStatus.currentVersion),
  -          ),
  -          typeKeyword,
  -          typeKeyword);
  -    }
  -
  -    if ((showKeyword != null || hideKeyword != null) && !enableExtensionTypes) {
  -      var feature = ExperimentalFeatures.extension_types;
  -      handleRecoverableError(
  -          templateExperimentNotEnabled.withArguments(
  -            feature.enableString,
  -            _versionAsString(ExperimentStatus.currentVersion),
  -          ),
  -          (showKeyword ?? hideKeyword)!,
  -          (showKeyword ?? hideKeyword)!);
  +      _reportFeatureNotEnabled(
  +        feature: ExperimentalFeatures.extension_types,
  +        startToken: typeKeyword,
  +      );
  +    }
  +
  +    final showOrHideKeyword = showKeyword ?? hideKeyword;
  +    if (showOrHideKeyword != null && !enableExtensionTypes) {
  +      _reportFeatureNotEnabled(
  +        feature: ExperimentalFeatures.extension_types,
  +        startToken: showOrHideKeyword,
  +      );
       }
   
       ShowClause? showClause = pop(NullValue.ShowClause) as ShowClause?;
  
positive.code:     var keyword = modifiers?.finalConstOrVarKeyword;
      var covariantKeyword = modifiers?.covariantKeyword;
      var requiredKeyword = modifiers?.requiredToken;
      if (!enableNonNullable) {
        reportNonNullableModifierError(requiredKeyword);
      }
      var metadata = pop() as List<Annotation>?;
      var comment = _findComment(metadata,
  
negative.code:     push(_Modifiers()..abstractKeyword = abstractToken);
      if (!enableMacros) {
        if (macroToken != null) {
          _reportFeatureNotEnabled(
            feature: ExperimentalFeatures.macros,
            startToken: macroToken,
          );
          // Pretend that 'macro' didn't occur while this feature is incomplete.
          macroToken = null;
        }
  