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:
Sam Rawlins
2021-12-21 22:59:24 +00:00
committed by Commit Bot
parent 73cfe523e0
commit bcae980a00
3 changed files with 20 additions and 12 deletions
+2 -2
View File
@@ -1,3 +1,3 @@
analyzer:
strong-mode:
implicit-casts: false
language:
strict-casts: true
+12 -8
View File
@@ -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;
+6 -2
View File
@@ -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>{};