Revert "[dart2js] Address some feedback on constraints API."
This reverts commit 851d821556a7cbb1097336a4b5895f31360de904.
Reason for revert: Breaks release
Original change's description:
> [dart2js] Address some feedback on constraints API.
>
> * Changes default namer to use the always unique uri#prefix of a
> deferred import.
> * Changes builder api for combiner nodes to take sets.
>
> Change-Id: Iab23db94a166560682a8c2bd4a78ebfd3e734353
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218880
> Reviewed-by: Sigmund Cherem <sigmund@google.com>
> Commit-Queue: Joshua Litt <joshualitt@google.com>
TBR=sigmund@google.com,joshualitt@google.com
Change-Id: Idb0d79221ff005127276c0d616c9a6a04ad09f44
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219127
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
diff --git a/pkg/compiler/lib/src/deferred_load/program_split_constraints/nodes.dart b/pkg/compiler/lib/src/deferred_load/program_split_constraints/nodes.dart
index dc1ec97..9f10c18 100644
--- a/pkg/compiler/lib/src/deferred_load/program_split_constraints/nodes.dart
+++ b/pkg/compiler/lib/src/deferred_load/program_split_constraints/nodes.dart
@@ -44,7 +44,8 @@
Uri get uri => _uriAndPrefix.uri;
String get prefix => _uriAndPrefix.prefix;
- ReferenceNode(String name, this._uriAndPrefix) : super(name);
+ ReferenceNode(this._uriAndPrefix, {name})
+ : super(name ?? _uriAndPrefix.prefix);
@override
Map<String, dynamic> toJson() {
@@ -59,8 +60,8 @@
if (nodeJson['type'] != 'reference') {
throw 'Unrecognized type for reference node: ${nodeJson['type']}.';
}
- return ReferenceNode(
- nodeJson['name'], UriAndPrefix.fromJson(nodeJson['import']));
+ return ReferenceNode(UriAndPrefix.fromJson(nodeJson['import']),
+ name: nodeJson['name']);
}
@override
@@ -192,10 +193,9 @@
final Map<String, NamedNode> namedNodes = {};
ReferenceNodeNamer _referenceNodeNamer;
- /// 'uri#prefix' will become a key to reference this node in other builder
- /// calls.
- String _uriAndPrefixNamer(UriAndPrefix uriAndPrefix) =>
- uriAndPrefix.toString();
+ /// The prefix in the 'uri#prefix' string will become a key to reference this
+ /// node in other builder calls.
+ String _prefixNamer(UriAndPrefix uriAndPrefix) => uriAndPrefix.prefix;
/// Override the default reference node namer.
set referenceNodeNamer(ReferenceNodeNamer namer) =>
@@ -203,16 +203,7 @@
/// Returns the [ReferenceNodeNamer] to use for naming.
ReferenceNodeNamer get referenceNodeNamer =>
- _referenceNodeNamer ?? _uriAndPrefixNamer;
-
- NamedNode _addNamedNode(NamedNode node) {
- if (namedNodes.containsKey(node.name)) {
- throw 'Node with name ${node.name} already exists: '
- '${namedNodes[node.name]}';
- }
- namedNodes[node.name] = node;
- return node;
- }
+ _referenceNodeNamer ?? _prefixNamer;
/// Returns a [ReferenceNode] referencing [importUriAndPrefix].
/// [ReferenceNode]s are typically created in bulk, by mapping over a list of
@@ -221,8 +212,10 @@
/// [referenceNodeNamer] per [ReferenceNode].
ReferenceNode referenceNode(String importUriAndPrefix) {
var uriAndPrefix = UriAndPrefix.fromJson(importUriAndPrefix);
+ var referenceNode = ReferenceNode(uriAndPrefix);
var name = referenceNodeNamer(uriAndPrefix);
- return _addNamedNode(ReferenceNode(name, uriAndPrefix));
+ namedNodes[name] = referenceNode;
+ return referenceNode;
}
/// Creates an unnamed [RelativeOrderNode] referencing two [NamedNode]s.
@@ -233,37 +226,29 @@
/// Creates a [CombinerNode] which can be referenced by [name] in further
/// calls to the builder.
- CombinerNode combinerNode(String name, Set<String> nodes, CombinerType type) {
- ReferenceNode _lookup(String nodeName) {
- if (!namedNodes.containsKey(nodeName)) {
- throw 'Missing reference node for $nodeName';
- }
- var node = namedNodes[nodeName];
- if (node is! ReferenceNode) {
- // TODO(joshualitt): Implement nested combiners.
- throw '$name references node $nodeName which is not a ReferenceNode.';
- }
- return node as ReferenceNode;
- }
-
- return _addNamedNode(CombinerNode(name, type, nodes.map(_lookup).toSet()));
+ CombinerNode combinerNode(
+ String name, List<String> nodes, CombinerType type) {
+ var combinerNode = CombinerNode(name, type,
+ nodes.map((name) => namedNodes[name] as ReferenceNode).toSet());
+ namedNodes[name] = combinerNode;
+ return combinerNode;
}
/// Creates an 'and' [CombinerNode] which can be referenced by [name] in
/// further calls to the builder.
- CombinerNode andNode(String name, Set<String> nodes) {
+ CombinerNode andNode(String name, List<String> nodes) {
return combinerNode(name, nodes, CombinerType.and);
}
/// Creates a 'fuse' [CombinerNode] which can be referenced by [name] in
/// further calls to the builder.
- CombinerNode fuseNode(String name, Set<String> nodes) {
+ CombinerNode fuseNode(String name, List<String> nodes) {
return combinerNode(name, nodes, CombinerType.fuse);
}
/// Creates an 'or' [CombinerNode] which can be referenced by [name] in
/// further calls to the builder.
- CombinerNode orNode(String name, Set<String> nodes) {
+ CombinerNode orNode(String name, List<String> nodes) {
return combinerNode(name, nodes, CombinerType.or);
}
}
diff --git a/pkg/compiler/test/custom_split/custom_split_test.dart b/pkg/compiler/test/custom_split/custom_split_test.dart
index f1e4fd4..fb0968a 100644
--- a/pkg/compiler/test/custom_split/custom_split_test.dart
+++ b/pkg/compiler/test/custom_split/custom_split_test.dart
@@ -83,30 +83,17 @@
return json;
}
-Uri getFileInTestFolder(String test, String file) =>
- Platform.script.resolve('data/$test/$file');
-
-Future<String> compileConstraintsToJson(String test, Compiler compiler) async {
- var constraints = getFileInTestFolder(test, 'constraints.dart');
- var component = compiler.componentForTesting;
- return constraintsToJson(component, constraints);
-}
-
-File getConstraintsJsonFile(String test) {
- var constraintsJsonUri = getFileInTestFolder(test, 'constraints.json');
- return File(constraintsJsonUri.toFilePath());
-}
-
/// Verifies the programmatic API produces the expected JSON.
Future<void> verifyCompiler(String test, Compiler compiler) async {
- var json = await compileConstraintsToJson(test, compiler);
- Expect.equals(getConstraintsJsonFile(test).readAsStringSync(), json);
-}
-
-/// Generates constraint JSON.
-Future<void> generateJSON(String test, Compiler compiler) async {
- var json = await compileConstraintsToJson(test, compiler);
- getConstraintsJsonFile(test).writeAsStringSync(json);
+ var constraints = Platform.script.resolve('data/$test/constraints.dart');
+ var constraintsJsonUri =
+ Platform.script.resolve('data/$test/constraints.json');
+ var component = compiler.componentForTesting;
+ var json = await constraintsToJson(component, constraints);
+ var constraintsJson =
+ File(constraintsJsonUri.toFilePath()).readAsStringSync();
+ constraintsJson = constraintsJson.substring(0, constraintsJson.length - 1);
+ Expect.equals(json, constraintsJson);
}
/// Compute the [OutputUnit]s for all source files involved in the test, and
@@ -115,7 +102,6 @@
/// or all supporting libraries to be in the `libs` folder, starting with the
/// same name as the original file in `data`.
main(List<String> args) {
- bool generateGoldens = args.contains('-g');
asyncTest(() async {
Directory dataDir = Directory.fromUri(Platform.script.resolve('data'));
await checkTests(dataDir, const OutputUnitDataComputer(),
@@ -123,8 +109,6 @@
perTestOptions: createPerTestOptions(),
args: args, setUpFunction: () {
importPrefixes.clear();
- },
- testedConfigs: allSpecConfigs,
- verifyCompiler: generateGoldens ? generateJSON : verifyCompiler);
+ }, testedConfigs: allSpecConfigs, verifyCompiler: verifyCompiler);
});
}
diff --git a/pkg/compiler/test/custom_split/data/diamond/constraints.dart b/pkg/compiler/test/custom_split/data/diamond/constraints.dart
index 88ccb84..92a7665 100644
--- a/pkg/compiler/test/custom_split/data/diamond/constraints.dart
+++ b/pkg/compiler/test/custom_split/data/diamond/constraints.dart
@@ -12,16 +12,12 @@
}
List<Node> processDeferredImports(List<String> imports) {
- var step1 = 'memory:sdk/tests/web/native/main.dart#step1';
- var step2a = 'memory:sdk/tests/web/native/main.dart#step2a';
- var step2b = 'memory:sdk/tests/web/native/main.dart#step2b';
- var step3 = 'memory:sdk/tests/web/native/main.dart#step3';
var builder = ProgramSplitBuilder();
return [
...imports.map(builder.referenceNode),
- builder.orderNode(step1, step2a),
- builder.orderNode(step1, step2b),
- builder.orderNode(step2a, step3),
- builder.orderNode(step2b, step3),
+ builder.orderNode('step1', 'step2a'),
+ builder.orderNode('step1', 'step2b'),
+ builder.orderNode('step2a', 'step3'),
+ builder.orderNode('step2b', 'step3'),
];
}
diff --git a/pkg/compiler/test/custom_split/data/diamond/constraints.json b/pkg/compiler/test/custom_split/data/diamond/constraints.json
index 21b8afa..83dfe0a 100644
--- a/pkg/compiler/test/custom_split/data/diamond/constraints.json
+++ b/pkg/compiler/test/custom_split/data/diamond/constraints.json
@@ -1,42 +1,42 @@
[
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step1",
+ "name": "step1",
"import": "memory:sdk/tests/web/native/main.dart#step1"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2a",
+ "name": "step2a",
"import": "memory:sdk/tests/web/native/main.dart#step2a"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2b",
+ "name": "step2b",
"import": "memory:sdk/tests/web/native/main.dart#step2b"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step3",
+ "name": "step3",
"import": "memory:sdk/tests/web/native/main.dart#step3"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
- "successor": "memory:sdk/tests/web/native/main.dart#step2a"
+ "predecessor": "step1",
+ "successor": "step2a"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
- "successor": "memory:sdk/tests/web/native/main.dart#step2b"
+ "predecessor": "step1",
+ "successor": "step2b"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step2a",
- "successor": "memory:sdk/tests/web/native/main.dart#step3"
+ "predecessor": "step2a",
+ "successor": "step3"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step2b",
- "successor": "memory:sdk/tests/web/native/main.dart#step3"
+ "predecessor": "step2b",
+ "successor": "step3"
}
-]
\ No newline at end of file
+]
diff --git a/pkg/compiler/test/custom_split/data/diamond_and/constraints.dart b/pkg/compiler/test/custom_split/data/diamond_and/constraints.dart
index a333016..b3a40ca 100644
--- a/pkg/compiler/test/custom_split/data/diamond_and/constraints.dart
+++ b/pkg/compiler/test/custom_split/data/diamond_and/constraints.dart
@@ -12,15 +12,11 @@
}
List<Node> processDeferredImports(List<String> imports) {
- var step1 = 'memory:sdk/tests/web/native/main.dart#step1';
- var step2a = 'memory:sdk/tests/web/native/main.dart#step2a';
- var step2b = 'memory:sdk/tests/web/native/main.dart#step2b';
- var step3 = 'memory:sdk/tests/web/native/main.dart#step3';
var builder = ProgramSplitBuilder();
return [
...imports.map(builder.referenceNode),
- builder.andNode('step2', {step2a, step2b}),
- builder.orderNode(step1, 'step2'),
- builder.orderNode('step2', step3),
+ builder.andNode('step2', ['step2a', 'step2b']),
+ builder.orderNode('step1', 'step2'),
+ builder.orderNode('step2', 'step3'),
];
}
diff --git a/pkg/compiler/test/custom_split/data/diamond_and/constraints.json b/pkg/compiler/test/custom_split/data/diamond_and/constraints.json
index 85344e7..931a910 100644
--- a/pkg/compiler/test/custom_split/data/diamond_and/constraints.json
+++ b/pkg/compiler/test/custom_split/data/diamond_and/constraints.json
@@ -1,40 +1,40 @@
[
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step1",
+ "name": "step1",
"import": "memory:sdk/tests/web/native/main.dart#step1"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2a",
+ "name": "step2a",
"import": "memory:sdk/tests/web/native/main.dart#step2a"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2b",
+ "name": "step2b",
"import": "memory:sdk/tests/web/native/main.dart#step2b"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step3",
+ "name": "step3",
"import": "memory:sdk/tests/web/native/main.dart#step3"
},
{
"type": "and",
"name": "step2",
"nodes": [
- "memory:sdk/tests/web/native/main.dart#step2a",
- "memory:sdk/tests/web/native/main.dart#step2b"
+ "step2a",
+ "step2b"
]
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
+ "predecessor": "step1",
"successor": "step2"
},
{
"type": "order",
"predecessor": "step2",
- "successor": "memory:sdk/tests/web/native/main.dart#step3"
+ "successor": "step3"
}
-]
\ No newline at end of file
+]
diff --git a/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.dart b/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.dart
index 145cbd1..6fdf62e 100644
--- a/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.dart
+++ b/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.dart
@@ -12,15 +12,11 @@
}
List<Node> processDeferredImports(List<String> imports) {
- var step1 = 'memory:sdk/tests/web/native/main.dart#step1';
- var step2a = 'memory:sdk/tests/web/native/main.dart#step2a';
- var step2b = 'memory:sdk/tests/web/native/main.dart#step2b';
- var step3 = 'memory:sdk/tests/web/native/main.dart#step3';
var builder = ProgramSplitBuilder();
return [
...imports.map(builder.referenceNode),
- builder.fuseNode('step2', {step2a, step2b}),
- builder.orderNode(step1, 'step2'),
- builder.orderNode('step2', step3),
+ builder.fuseNode('step2', ['step2a', 'step2b']),
+ builder.orderNode('step1', 'step2'),
+ builder.orderNode('step2', 'step3'),
];
}
diff --git a/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.json b/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.json
index dccfe20..f170d18 100644
--- a/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.json
+++ b/pkg/compiler/test/custom_split/data/diamond_fuse/constraints.json
@@ -1,40 +1,40 @@
[
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step1",
+ "name": "step1",
"import": "memory:sdk/tests/web/native/main.dart#step1"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2a",
+ "name": "step2a",
"import": "memory:sdk/tests/web/native/main.dart#step2a"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2b",
+ "name": "step2b",
"import": "memory:sdk/tests/web/native/main.dart#step2b"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step3",
+ "name": "step3",
"import": "memory:sdk/tests/web/native/main.dart#step3"
},
{
"type": "fuse",
"name": "step2",
"nodes": [
- "memory:sdk/tests/web/native/main.dart#step2a",
- "memory:sdk/tests/web/native/main.dart#step2b"
+ "step2a",
+ "step2b"
]
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
+ "predecessor": "step1",
"successor": "step2"
},
{
"type": "order",
"predecessor": "step2",
- "successor": "memory:sdk/tests/web/native/main.dart#step3"
+ "successor": "step3"
}
-]
\ No newline at end of file
+]
diff --git a/pkg/compiler/test/custom_split/data/diamond_or/constraints.dart b/pkg/compiler/test/custom_split/data/diamond_or/constraints.dart
index bdc5e1f..659bf73 100644
--- a/pkg/compiler/test/custom_split/data/diamond_or/constraints.dart
+++ b/pkg/compiler/test/custom_split/data/diamond_or/constraints.dart
@@ -12,15 +12,11 @@
}
List<Node> processDeferredImports(List<String> imports) {
- var step1 = 'memory:sdk/tests/web/native/main.dart#step1';
- var step2a = 'memory:sdk/tests/web/native/main.dart#step2a';
- var step2b = 'memory:sdk/tests/web/native/main.dart#step2b';
- var step3 = 'memory:sdk/tests/web/native/main.dart#step3';
var builder = ProgramSplitBuilder();
return [
...imports.map(builder.referenceNode),
- builder.orNode('step2', {step2a, step2b}),
- builder.orderNode(step1, 'step2'),
- builder.orderNode('step2', step3),
+ builder.orNode('step2', ['step2a', 'step2b']),
+ builder.orderNode('step1', 'step2'),
+ builder.orderNode('step2', 'step3'),
];
}
diff --git a/pkg/compiler/test/custom_split/data/diamond_or/constraints.json b/pkg/compiler/test/custom_split/data/diamond_or/constraints.json
index c4091f4..5fcc300 100644
--- a/pkg/compiler/test/custom_split/data/diamond_or/constraints.json
+++ b/pkg/compiler/test/custom_split/data/diamond_or/constraints.json
@@ -1,40 +1,40 @@
[
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step1",
+ "name": "step1",
"import": "memory:sdk/tests/web/native/main.dart#step1"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2a",
+ "name": "step2a",
"import": "memory:sdk/tests/web/native/main.dart#step2a"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2b",
+ "name": "step2b",
"import": "memory:sdk/tests/web/native/main.dart#step2b"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step3",
+ "name": "step3",
"import": "memory:sdk/tests/web/native/main.dart#step3"
},
{
"type": "or",
"name": "step2",
"nodes": [
- "memory:sdk/tests/web/native/main.dart#step2a",
- "memory:sdk/tests/web/native/main.dart#step2b"
+ "step2a",
+ "step2b"
]
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
+ "predecessor": "step1",
"successor": "step2"
},
{
"type": "order",
"predecessor": "step2",
- "successor": "memory:sdk/tests/web/native/main.dart#step3"
+ "successor": "step3"
}
-]
\ No newline at end of file
+]
diff --git a/pkg/compiler/test/custom_split/data/two_branch/constraints.dart b/pkg/compiler/test/custom_split/data/two_branch/constraints.dart
index 27a00ab..1e6ad05 100644
--- a/pkg/compiler/test/custom_split/data/two_branch/constraints.dart
+++ b/pkg/compiler/test/custom_split/data/two_branch/constraints.dart
@@ -12,13 +12,10 @@
}
List<Node> processDeferredImports(List<String> imports) {
- var step1 = 'memory:sdk/tests/web/native/main.dart#step1';
- var step2a = 'memory:sdk/tests/web/native/main.dart#step2a';
- var step2b = 'memory:sdk/tests/web/native/main.dart#step2b';
var builder = ProgramSplitBuilder();
return [
...imports.map(builder.referenceNode),
- builder.orderNode(step1, step2a),
- builder.orderNode(step1, step2b),
+ builder.orderNode('step1', 'step2a'),
+ builder.orderNode('step1', 'step2b'),
];
}
diff --git a/pkg/compiler/test/custom_split/data/two_branch/constraints.json b/pkg/compiler/test/custom_split/data/two_branch/constraints.json
index 1a29d7b..8b86071 100644
--- a/pkg/compiler/test/custom_split/data/two_branch/constraints.json
+++ b/pkg/compiler/test/custom_split/data/two_branch/constraints.json
@@ -1,27 +1,27 @@
[
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step1",
+ "name": "step1",
"import": "memory:sdk/tests/web/native/main.dart#step1"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2a",
+ "name": "step2a",
"import": "memory:sdk/tests/web/native/main.dart#step2a"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2b",
+ "name": "step2b",
"import": "memory:sdk/tests/web/native/main.dart#step2b"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
- "successor": "memory:sdk/tests/web/native/main.dart#step2a"
+ "predecessor": "step1",
+ "successor": "step2a"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
- "successor": "memory:sdk/tests/web/native/main.dart#step2b"
+ "predecessor": "step1",
+ "successor": "step2b"
}
-]
\ No newline at end of file
+]
diff --git a/pkg/compiler/test/custom_split/data/two_step/constraints.dart b/pkg/compiler/test/custom_split/data/two_step/constraints.dart
index fe0d8a5..9089c5c 100644
--- a/pkg/compiler/test/custom_split/data/two_step/constraints.dart
+++ b/pkg/compiler/test/custom_split/data/two_step/constraints.dart
@@ -12,13 +12,10 @@
}
List<Node> processDeferredImports(List<String> imports) {
- var step1 = 'memory:sdk/tests/web/native/main.dart#step1';
- var step2 = 'memory:sdk/tests/web/native/main.dart#step2';
- var step3 = 'memory:sdk/tests/web/native/main.dart#step3';
var builder = ProgramSplitBuilder();
return [
...imports.map(builder.referenceNode),
- builder.orderNode(step1, step2),
- builder.orderNode(step2, step3),
+ builder.orderNode('step1', 'step2'),
+ builder.orderNode('step2', 'step3'),
];
}
diff --git a/pkg/compiler/test/custom_split/data/two_step/constraints.json b/pkg/compiler/test/custom_split/data/two_step/constraints.json
index 77a02de..b72db44 100644
--- a/pkg/compiler/test/custom_split/data/two_step/constraints.json
+++ b/pkg/compiler/test/custom_split/data/two_step/constraints.json
@@ -1,27 +1,27 @@
[
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step1",
+ "name": "step1",
"import": "memory:sdk/tests/web/native/main.dart#step1"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step2",
+ "name": "step2",
"import": "memory:sdk/tests/web/native/main.dart#step2"
},
{
"type": "reference",
- "name": "memory:sdk/tests/web/native/main.dart#step3",
+ "name": "step3",
"import": "memory:sdk/tests/web/native/main.dart#step3"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step1",
- "successor": "memory:sdk/tests/web/native/main.dart#step2"
+ "predecessor": "step1",
+ "successor": "step2"
},
{
"type": "order",
- "predecessor": "memory:sdk/tests/web/native/main.dart#step2",
- "successor": "memory:sdk/tests/web/native/main.dart#step3"
+ "predecessor": "step2",
+ "successor": "step3"
}
-]
\ No newline at end of file
+]