smith: Use strict-casts instead of no-implicit-casts
These modes are almost identical; one difference which is highlighted below is that a `dynamic` value used in a spread is considered to be an implicit cast from dynamic to Iterable. Bug: https://github.com/dart-lang/sdk/issues/47902 Change-Id: Iabb6881c72e29349c36ce99e29853a8315b6f4dd Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/225044 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
analyzer:
|
||||
strong-mode:
|
||||
implicit-casts: false
|
||||
language:
|
||||
strict-casts: true
|
||||
|
||||
@@ -73,11 +73,12 @@ class Step {
|
||||
throw FormatException("Step tests multiple configurations: $arguments");
|
||||
}
|
||||
}
|
||||
var environment = map["environment"] as Map<Object?, Object?>?;
|
||||
return Step(
|
||||
map["name"] as String,
|
||||
script,
|
||||
arguments,
|
||||
<String, String>{...?map["environment"]},
|
||||
{...?environment?.cast<String, String>()},
|
||||
map["fileset"] as String?,
|
||||
map["shards"] as int?,
|
||||
isTestRunner,
|
||||
@@ -192,14 +193,17 @@ List<Builder> parseBuilders(
|
||||
var names = <String>{};
|
||||
for (var builderConfiguration in builderConfigurations) {
|
||||
var meta = builderConfiguration["meta"] as Map? ?? <String, String>{};
|
||||
var builderNames = <String>[...?builderConfiguration["builders"]];
|
||||
var steps = <Map>[...?builderConfiguration["steps"]];
|
||||
for (var builderName in builderNames) {
|
||||
if (!names.add(builderName)) {
|
||||
throw FormatException('Duplicate builder name: "$builderName"');
|
||||
var builderNames = builderConfiguration["builders"] as List<Object?>?;
|
||||
if (builderNames != null) {
|
||||
var steps = ((builderConfiguration["steps"] ?? []) as List<Object?>)
|
||||
.cast<Map<Object?, Object?>>();
|
||||
for (var builderName in builderNames.cast<String>()) {
|
||||
if (!names.add(builderName)) {
|
||||
throw FormatException('Duplicate builder name: "$builderName"');
|
||||
}
|
||||
builders.add(Builder.parse(builderName, steps, configurations,
|
||||
meta["description"] as String?));
|
||||
}
|
||||
builders.add(Builder.parse(
|
||||
builderName, steps, configurations, meta["description"] as String?));
|
||||
}
|
||||
}
|
||||
return builders;
|
||||
|
||||
@@ -52,9 +52,13 @@ class TestMatrix {
|
||||
}
|
||||
});
|
||||
|
||||
var builderConfigurations = <Map>[...?json["builder_configurations"]];
|
||||
var builderConfigurations = [
|
||||
...?(json["builder_configurations"] as List<Object?>?)
|
||||
?.cast<Map<Object?, Object?>>()
|
||||
];
|
||||
var builders = parseBuilders(builderConfigurations, configurations);
|
||||
var branches = <String>[...?json["branches"]];
|
||||
var branchesValue = json["branches"] as List?;
|
||||
var branches = [...?branchesValue?.cast<String>()];
|
||||
|
||||
// Check that each configuration is tested on at most one builder.
|
||||
var testedOn = <Configuration, Builder>{};
|
||||
|
||||
Reference in New Issue
Block a user