Use preparsed experiment status in Static Type Analyzer
Change-Id: I67b3442f00aed8779806c5aa532ec5e1fdaecf7b
Reviewed-on: https://dart-review.googlesource.com/c/89022
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index 564675f..88f8f3b 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -18,6 +18,7 @@
import 'package:analyzer/src/dart/element/member.dart' show ConstructorMember;
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
import 'package:analyzer/src/task/strong/checker.dart'
@@ -56,7 +57,7 @@
/**
* The status of the active experiments of the current context.
*/
- ExperimentStatus _enabledExperiments;
+ ExperimentStatus _experimentStatus;
/**
* The type representing the class containing the nodes being analyzed,
@@ -79,8 +80,9 @@
_typeSystem = _resolver.typeSystem;
_dynamicType = _typeProvider.dynamicType;
_promoteManager = _resolver.promoteManager;
- _enabledExperiments = ExperimentStatus.fromStrings(
- _resolver.definingLibrary.context.analysisOptions.enabledExperiments);
+ _experimentStatus = (_resolver.definingLibrary.context.analysisOptions
+ as AnalysisOptionsImpl)
+ .experimentStatus;
}
/**
@@ -182,7 +184,7 @@
ParameterizedType inferMapType(MapLiteral node, {bool downwards: false}) {
DartType contextType = InferenceContext.getContext(node);
- if (contextType != null && _enabledExperiments.set_literals) {
+ if (contextType != null && _experimentStatus.set_literals) {
DartType unwrap(DartType type) {
if (type is InterfaceType &&
type.isDartAsyncFutureOr &&
diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart
index 2f42085..f0a1a4a 100644
--- a/pkg/analyzer/lib/src/summary/link.dart
+++ b/pkg/analyzer/lib/src/summary/link.dart
@@ -62,6 +62,7 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/error/listener.dart';
+import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/constant/value.dart';
import 'package:analyzer/src/dart/element/builder.dart';
@@ -434,7 +435,7 @@
bool get strongModeHints => false;
@override
- List<String> get enabledExperiments => [];
+ ExperimentStatus get experimentStatus => new ExperimentStatus();
@override
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);