blob: de7d06d1c9e94232cb71104e7dce7926d8d18909 [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 'package:_fe_analyzer_shared/src/type_inference/type_analyzer.dart';
import 'package:analyzer/dart/analysis/features.dart';
/// Computes the appropriate value of [TypeAnalyzerOptions] based on a
/// [FeatureSet].
TypeAnalyzerOptions computeTypeAnalyzerOptions(FeatureSet featureSet) =>
TypeAnalyzerOptions(
patternsEnabled: featureSet.isEnabled(Feature.patterns),
inferenceUpdate3Enabled: featureSet.isEnabled(Feature.inference_update_3),
respectImplicitlyTypedVarInitializers: featureSet.isEnabled(
Feature.constructor_tearoffs,
),
fieldPromotionEnabled: featureSet.isEnabled(Feature.inference_update_2),
inferenceUpdate4Enabled: featureSet.isEnabled(Feature.inference_update_4),
soundFlowAnalysisEnabled: featureSet.isEnabled(
Feature.sound_flow_analysis,
),
);