| // Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import '../experiments/flags.dart'; |
| |
| /// Interface for determining which features are enabled during parsing. |
| abstract class ExperimentalFeatures { |
| bool isExperimentEnabled(ExperimentalFlag flag); |
| } |
| |
| /// Implementation of [ExperimentalFeatures] that uses the enables the |
| /// experiments currently enabled by default. |
| /// |
| /// This should only be used for testing. For actual parsing, the enabled |
| /// features should be determined by language version and enabled experiments. |
| class DefaultExperimentalFeatures implements ExperimentalFeatures { |
| const DefaultExperimentalFeatures(); |
| |
| @override |
| bool isExperimentEnabled(ExperimentalFlag flag) => flag.isEnabledByDefault; |
| } |