diff --git a/pkg/smith/analysis_options.yaml b/pkg/smith/analysis_options.yaml index 1a46de2ee05..55af6346f20 100644 --- a/pkg/smith/analysis_options.yaml +++ b/pkg/smith/analysis_options.yaml @@ -1,3 +1,3 @@ analyzer: - strong-mode: - implicit-casts: false + language: + strict-casts: true diff --git a/pkg/smith/lib/builder.dart b/pkg/smith/lib/builder.dart index ebe550c747f..6f277304576 100644 --- a/pkg/smith/lib/builder.dart +++ b/pkg/smith/lib/builder.dart @@ -73,11 +73,12 @@ class Step { throw FormatException("Step tests multiple configurations: $arguments"); } } + var environment = map["environment"] as Map?; return Step( map["name"] as String, script, arguments, - {...?map["environment"]}, + {...?environment?.cast()}, map["fileset"] as String?, map["shards"] as int?, isTestRunner, @@ -192,14 +193,17 @@ List parseBuilders( var names = {}; for (var builderConfiguration in builderConfigurations) { var meta = builderConfiguration["meta"] as Map? ?? {}; - var builderNames = [...?builderConfiguration["builders"]]; - var steps = [...?builderConfiguration["steps"]]; - for (var builderName in builderNames) { - if (!names.add(builderName)) { - throw FormatException('Duplicate builder name: "$builderName"'); + var builderNames = builderConfiguration["builders"] as List?; + if (builderNames != null) { + var steps = ((builderConfiguration["steps"] ?? []) as List) + .cast>(); + for (var builderName in builderNames.cast()) { + 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; diff --git a/pkg/smith/lib/test_matrix.dart b/pkg/smith/lib/test_matrix.dart index 0af1ca8b371..a81a0e3e7f5 100644 --- a/pkg/smith/lib/test_matrix.dart +++ b/pkg/smith/lib/test_matrix.dart @@ -52,9 +52,13 @@ class TestMatrix { } }); - var builderConfigurations = [...?json["builder_configurations"]]; + var builderConfigurations = [ + ...?(json["builder_configurations"] as List?) + ?.cast>() + ]; var builders = parseBuilders(builderConfigurations, configurations); - var branches = [...?json["branches"]]; + var branchesValue = json["branches"] as List?; + var branches = [...?branchesValue?.cast()]; // Check that each configuration is tested on at most one builder. var testedOn = {};