Skip to content

Commit baaeafa

Browse files
stereotype441commit-bot@chromium.org
authored andcommitted
Flow analysis: move into front_end.
This will allow it to be used by both the front end and the analyzer. Change-Id: I3af67aaf3ad7ff2cca0cb245518570892ad473e9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109986 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
1 parent 24c0507 commit baaeafa

File tree

5 files changed

+14
-14
lines changed

5 files changed

+14
-14
lines changed

pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import 'package:analyzer/dart/element/element.dart';
99
import 'package:analyzer/dart/element/type.dart';
1010
import 'package:analyzer/dart/element/type_system.dart';
1111
import 'package:analyzer/src/dart/element/type.dart';
12-
import 'package:analyzer/src/dart/resolver/flow_analysis.dart';
1312
import 'package:analyzer/src/generated/variable_type_provider.dart';
13+
import 'package:front_end/src/fasta/flow_analysis/flow_analysis.dart';
1414

1515
/// The helper for performing flow analysis during resolution.
1616
///

pkg/analyzer/test/src/dart/resolution/test_all.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import 'export_test.dart' as export_;
1616
import 'extension_method_test.dart' as extension_method;
1717
import 'extension_override_test.dart' as extension_override;
1818
import 'flow_analysis_test.dart' as flow_analysis;
19-
import 'flow_analysis_unit_test.dart' as flow_analysis_unit;
2019
import 'for_element_test.dart' as for_element;
2120
import 'for_in_test.dart' as for_in;
2221
import 'function_expression_invocation_test.dart'
@@ -56,7 +55,6 @@ main() {
5655
extension_method.main();
5756
extension_override.main();
5857
flow_analysis.main();
59-
flow_analysis_unit.main();
6058
for_element.main();
6159
for_in.main();
6260
function_expression_invocation.main();

pkg/analyzer/lib/src/dart/resolver/flow_analysis.dart renamed to pkg/front_end/lib/src/fasta/flow_analysis/flow_analysis.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class FlowAnalysis<Statement, Expression, Variable, Type> {
9595
/// erroneous code, it's possible that a variable might be used before its
9696
/// declaration.
9797
final Set<Variable> _referencedVariables =
98-
_assertionsEnabled ? <Variable>{} : null;
98+
_assertionsEnabled ? Set<Variable>() : null;
9999

100100
factory FlowAnalysis(
101101
NodeOperations<Expression> nodeOperations,

pkg/analyzer/test/src/dart/resolution/flow_analysis_unit_test.dart renamed to pkg/front_end/test/fasta/flow_analysis/flow_analysis_test.dart

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/src/dart/resolver/flow_analysis.dart';
5+
import 'package:front_end/src/fasta/flow_analysis/flow_analysis.dart';
66
import 'package:test/test.dart';
77

88
main() {
@@ -295,7 +295,7 @@ main() {
295295
.add(objectQVar)
296296
.add(intQVar)
297297
.promote(h, objectQVar, _Type('int'));
298-
var s2 = s1.removePromotedAll({intQVar});
298+
var s2 = s1.removePromotedAll([intQVar].toSet());
299299
expect(s2, same(s1));
300300
});
301301

@@ -306,7 +306,7 @@ main() {
306306
.add(intQVar)
307307
.promote(h, objectQVar, _Type('int'))
308308
.promote(h, intQVar, _Type('int'));
309-
var s2 = s1.removePromotedAll({intQVar});
309+
var s2 = s1.removePromotedAll([intQVar].toSet());
310310
expect(s2.reachable, true);
311311
expect(s2.notAssigned, same(s1.notAssigned));
312312
_Type.allowComparisons(() {
@@ -320,12 +320,13 @@ main() {
320320
var h = _Harness();
321321
var reachable = State<_Var, _Type>(true);
322322
var unreachable = reachable.setReachable(false);
323-
expect(reachable.restrict(h, emptySet, reachable, {}), same(reachable));
324-
expect(reachable.restrict(h, emptySet, unreachable, {}),
323+
expect(
324+
reachable.restrict(h, emptySet, reachable, Set()), same(reachable));
325+
expect(reachable.restrict(h, emptySet, unreachable, Set()),
325326
same(unreachable));
326-
expect(unreachable.restrict(h, emptySet, unreachable, {}),
327+
expect(unreachable.restrict(h, emptySet, unreachable, Set()),
327328
same(unreachable));
328-
expect(unreachable.restrict(h, emptySet, unreachable, {}),
329+
expect(unreachable.restrict(h, emptySet, unreachable, Set()),
329330
same(unreachable));
330331
});
331332

@@ -338,7 +339,7 @@ main() {
338339
var s0 = State<_Var, _Type>(true).add(a).add(b).add(c).add(d);
339340
var s1 = s0.write(h, emptySet, a).write(h, emptySet, b);
340341
var s2 = s0.write(h, emptySet, a).write(h, emptySet, c);
341-
var result = s1.restrict(h, emptySet, s2, {});
342+
var result = s1.restrict(h, emptySet, s2, Set());
342343
expect(result.notAssigned.contains(a), false);
343344
expect(result.notAssigned.contains(b), false);
344345
expect(result.notAssigned.contains(c), false);
@@ -353,7 +354,8 @@ main() {
353354
var s0 = State<_Var, _Type>(true).add(x, assigned: true);
354355
var s1 = thisType == null ? s0 : s0.promote(h, x, _Type(thisType));
355356
var s2 = otherType == null ? s0 : s0.promote(h, x, _Type(otherType));
356-
var result = s1.restrict(h, emptySet, s2, unsafe ? {x} : {});
357+
var result =
358+
s1.restrict(h, emptySet, s2, unsafe ? [x].toSet() : Set());
357359
if (expectedType == null) {
358360
expect(result.promoted, isNot(contains(x)));
359361
} else {

pkg/nnbd_migration/lib/src/decorated_type_operations.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import 'package:analyzer/dart/element/element.dart';
66
import 'package:analyzer/dart/element/type_system.dart';
7-
import 'package:analyzer/src/dart/resolver/flow_analysis.dart';
7+
import 'package:front_end/src/fasta/flow_analysis/flow_analysis.dart';
88
import 'package:nnbd_migration/src/decorated_type.dart';
99
import 'package:nnbd_migration/src/node_builder.dart';
1010

0 commit comments

Comments
 (0)