Version 2.15.0-165.0.dev
Merge commit 'e24865a79ea8f1c8f5d1521935a249ab59f34e91' into 'dev'
diff --git a/pkg/analysis_server/benchmark/benchmarks.dart b/pkg/analysis_server/benchmark/benchmarks.dart
index c319053..28c658d 100644
--- a/pkg/analysis_server/benchmark/benchmarks.dart
+++ b/pkg/analysis_server/benchmark/benchmarks.dart
@@ -8,6 +8,7 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
+import 'package:analyzer_utilities/package_root.dart';
import 'package:args/command_runner.dart';
import 'package:intl/intl.dart';
import 'package:path/path.dart' as path;
@@ -24,17 +25,17 @@
FlutterAnalyzeBenchmark(),
];
- var runner =
- CommandRunner('benchmark', 'A benchmark runner for the analysis server.');
+ var runner = CommandRunner(
+ 'benchmark',
+ 'A benchmark runner for the analysis server.',
+ );
runner.addCommand(ListCommand(benchmarks));
runner.addCommand(RunCommand(benchmarks));
runner.run(args);
}
String get analysisServerSrcPath {
- var script = Platform.script.toFilePath(windows: Platform.isWindows);
- var pkgPath = path.normalize(path.join(path.dirname(script), '..', '..'));
- return path.join(pkgPath, 'analysis_server');
+ return path.join(packageRoot, 'analysis_server');
}
void deleteServerCache() {
@@ -42,18 +43,14 @@
ResourceProvider resourceProvider = PhysicalResourceProvider.INSTANCE;
var stateLocation = resourceProvider.getStateLocation('.analysis-driver');
try {
- if (stateLocation != null && stateLocation.exists) {
- stateLocation.delete();
- }
+ stateLocation?.delete();
} catch (e) {
// ignore any exception
}
}
List<String> getProjectRoots({bool quick = false}) {
- var script = Platform.script.toFilePath(windows: Platform.isWindows);
- var pkgPath = path.normalize(path.join(path.dirname(script), '..', '..'));
- return <String>[path.join(pkgPath, quick ? 'meta' : 'analysis_server')];
+ return [path.join(packageRoot, quick ? 'meta' : 'analysis_server')];
}
abstract class Benchmark {
@@ -65,7 +62,7 @@
final String kind;
Benchmark(this.id, this.description,
- {this.enabled = true, this.kind = 'cpu'});
+ {this.enabled = true, required this.kind});
int get maxIterations => 0;
diff --git a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
index 40a0feb..6adbb19 100644
--- a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
+++ b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
@@ -73,8 +73,6 @@
_currentLibrary.featureSet.isEnabled(Feature.non_nullable),
);
- bool get _isNonNullableByDefault => _currentLibrary.isNonNullableByDefault;
-
@override
void visitAnnotation(Annotation node) {
super.visitAnnotation(node);
@@ -259,7 +257,7 @@
@override
void visitSwitchStatement(SwitchStatement node) {
- if (_isNonNullableByDefault) {
+ if (_currentLibrary.isNonNullableByDefault) {
_validateSwitchStatement_nullSafety(node);
} else {
_validateSwitchStatement_legacy(node);
@@ -424,7 +422,7 @@
void _reportNotPotentialConstants(AstNode node) {
var notPotentiallyConstants = getNotPotentiallyConstants(
node,
- isNonNullableByDefault: _isNonNullableByDefault,
+ featureSet: _currentLibrary.featureSet,
);
if (notPotentiallyConstants.isEmpty) return;
@@ -773,7 +771,7 @@
bool _reportNotPotentialConstants(AstNode node) {
var notPotentiallyConstants = getNotPotentiallyConstants(
node,
- isNonNullableByDefault: verifier._isNonNullableByDefault,
+ featureSet: verifier._currentLibrary.featureSet,
);
if (notPotentiallyConstants.isEmpty) return true;
diff --git a/pkg/analyzer/lib/src/dart/constant/evaluation.dart b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
index 26fdf2b..e26da9a 100644
--- a/pkg/analyzer/lib/src/dart/constant/evaluation.dart
+++ b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
@@ -1760,7 +1760,7 @@
void _reportNotPotentialConstants(AstNode node) {
var notPotentiallyConstants = getNotPotentiallyConstants(
node,
- isNonNullableByDefault: _isNonNullableByDefault,
+ featureSet: _library.featureSet,
);
if (notPotentiallyConstants.isEmpty) return;
diff --git a/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart b/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart
index 3b37d629..c2abc80 100644
--- a/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart
+++ b/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart
@@ -2,6 +2,7 @@
// 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:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
@@ -17,10 +18,10 @@
/// Return the list of nodes that are not potentially constant.
List<AstNode> getNotPotentiallyConstants(
AstNode node, {
- required bool isNonNullableByDefault,
+ required FeatureSet featureSet,
}) {
var collector = _Collector(
- isNonNullableByDefault: isNonNullableByDefault,
+ featureSet: featureSet,
);
collector.collect(node);
return collector.nodes;
@@ -50,10 +51,10 @@
}
class _Collector {
- final bool isNonNullableByDefault;
+ final FeatureSet featureSet;
final List<AstNode> nodes = [];
- _Collector({required this.isNonNullableByDefault});
+ _Collector({required this.featureSet});
void collect(AstNode node) {
if (node is BooleanLiteral ||
@@ -139,7 +140,7 @@
}
if (node is AsExpression) {
- if (isNonNullableByDefault) {
+ if (featureSet.isEnabled(Feature.non_nullable)) {
if (!isPotentiallyConstantTypeExpression(node.type)) {
nodes.add(node.type);
}
@@ -153,7 +154,7 @@
}
if (node is IsExpression) {
- if (isNonNullableByDefault) {
+ if (featureSet.isEnabled(Feature.non_nullable)) {
if (!isPotentiallyConstantTypeExpression(node.type)) {
nodes.add(node.type);
}
diff --git a/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart b/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart
index 6184eb4..e9e0a9a 100644
--- a/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart
+++ b/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart
@@ -1140,7 +1140,7 @@
var node = getNode();
var notConstList = getNotPotentiallyConstants(
node,
- isNonNullableByDefault: typeSystem.isNonNullableByDefault,
+ featureSet: featureSet,
);
expect(notConstList, isEmpty);
}
@@ -1151,7 +1151,7 @@
var node = getNode();
var notConstList = getNotPotentiallyConstants(
node,
- isNonNullableByDefault: typeSystem.isNonNullableByDefault,
+ featureSet: featureSet,
);
var expectedNotConst = getNotConstList();
@@ -1194,7 +1194,7 @@
var node = getNode();
var notConstList = getNotPotentiallyConstants(
node,
- isNonNullableByDefault: typeSystem.isNonNullableByDefault,
+ featureSet: featureSet,
);
var expectedNotConst = getNotConstList();
diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart
index 9daf620..b4e1b0b 100644
--- a/pkg/analyzer/test/src/dart/resolution/resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart
@@ -2,6 +2,7 @@
// 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:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
@@ -47,6 +48,8 @@
bool get enableUnusedLocalVariable => false;
+ FeatureSet get featureSet => result.libraryElement.featureSet;
+
ClassElement get futureElement => typeProvider.futureElement;
/// TODO(scheglov) https://github.com/dart-lang/sdk/issues/43608
diff --git a/tools/VERSION b/tools/VERSION
index cc57400..01f2639 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 15
PATCH 0
-PRERELEASE 164
+PRERELEASE 165
PRERELEASE_PATCH 0
\ No newline at end of file