blob: 6e6e8676cc8e80a82790bb8d81c3af42615042e3 [file] [log] [blame]
// 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;
}