migrate 3 leaf files to null-safety (#3168)
diff --git a/lib/src/package_config.dart b/lib/src/package_config.dart index fad20f7..0493dcc 100644 --- a/lib/src/package_config.dart +++ b/lib/src/package_config.dart
@@ -2,10 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.10 - -import 'package:meta/meta.dart'; - import 'package:pub_semver/pub_semver.dart'; import 'language_version.dart'; @@ -22,38 +18,36 @@ /// Date-time the `.dart_tool/package_config.json` file was generated. /// - /// This property is **optional** and may be `null` if not given. - DateTime generated; + /// `null` if not given. + DateTime? generated; /// Tool that generated the `.dart_tool/package_config.json` file. /// /// For `pub` this is always `'pub'`. /// - /// This property is **optional** and may be `null` if not given. - String generator; + /// `null` if not given. + String? generator; /// Version of the tool that generated the `.dart_tool/package_config.json` /// file. /// /// For `pub` this is the Dart SDK version from which `pub get` was called. /// - /// This property is **optional** and may be `null` if not given. - Version generatorVersion; + /// `null` if not given. + Version? generatorVersion; /// Additional properties not in the specification for the /// `.dart_tool/package_config.json` file. Map<String, dynamic> additionalProperties; PackageConfig({ - @required this.configVersion, - @required this.packages, + required this.configVersion, + required this.packages, this.generated, this.generator, this.generatorVersion, - this.additionalProperties, - }) { - additionalProperties ??= {}; - } + Map<String, dynamic>? additionalProperties, + }) : additionalProperties = additionalProperties ?? {}; /// Create [PackageConfig] from JSON [data]. /// @@ -63,7 +57,7 @@ if (data is! Map<String, dynamic>) { throw FormatException('package_config.json must be a JSON object'); } - final root = data as Map<String, dynamic>; + final root = data; void _throw(String property, String mustBe) => throw FormatException( '"$property" in .dart_tool/package_config.json $mustBe'); @@ -87,7 +81,7 @@ } // Read the 'generated' property - DateTime generated; + DateTime? generated; final generatedRaw = root['generated']; if (generatedRaw != null) { if (generatedRaw is! String) { @@ -104,7 +98,7 @@ } // Read the 'generatorVersion' property - Version generatorVersion; + Version? generatorVersion; final generatorVersionRaw = root['generatorVersion']; if (generatorVersionRaw != null) { if (generatorVersionRaw is! String) { @@ -134,13 +128,13 @@ } /// Convert to JSON structure. - Map<String, Object> toJson() => { + Map<String, Object?> toJson() => { 'configVersion': configVersion, 'packages': packages.map((p) => p.toJson()).toList(), - 'generated': generated?.toUtc()?.toIso8601String(), + 'generated': generated?.toUtc().toIso8601String(), 'generator': generator, 'generatorVersion': generatorVersion?.toString(), - }..addAll(additionalProperties ?? {}); + }..addAll(additionalProperties); } class PackageConfigEntry { @@ -158,8 +152,8 @@ /// Import statements in Dart programs are resolved relative to this folder. /// This must be in the sub-tree under [rootUri]. /// - /// This property is **optional** and may be `null` if not given. - Uri packageUri; + /// `null` if not given. + Uri? packageUri; /// Language version used by package. /// @@ -167,16 +161,16 @@ /// comment. This is derived from the lower-bound on the Dart SDK requirement /// in the `pubspec.yaml` for the given package. /// - /// This property is **optional** and may be `null` if not given. - LanguageVersion languageVersion; + /// `null` if not given. + LanguageVersion? languageVersion; /// Additional properties not in the specification for the /// `.dart_tool/package_config.json` file. - Map<String, dynamic> additionalProperties; + Map<String, dynamic>? additionalProperties; PackageConfigEntry({ - @required this.name, - @required this.rootUri, + required this.name, + required this.rootUri, this.packageUri, this.languageVersion, this.additionalProperties, @@ -193,9 +187,9 @@ throw FormatException( 'packages[] entries in package_config.json must be JSON objects'); } - final root = data as Map<String, dynamic>; + final root = data; - void _throw(String property, String mustBe) => throw FormatException( + Never _throw(String property, String mustBe) => throw FormatException( '"packages[].$property" in .dart_tool/package_config.json $mustBe'); final name = root['name']; @@ -203,7 +197,7 @@ _throw('name', 'must be a string'); } - Uri rootUri; + final Uri rootUri; final rootUriRaw = root['rootUri']; if (rootUriRaw is! String) { _throw('rootUri', 'must be a string'); @@ -214,7 +208,7 @@ _throw('rootUri', 'must be a URI'); } - Uri packageUri; + Uri? packageUri; var packageUriRaw = root['packageUri']; if (packageUriRaw != null) { if (packageUriRaw is! String) { @@ -230,7 +224,7 @@ } } - LanguageVersion languageVersion; + LanguageVersion? languageVersion; final languageVersionRaw = root['languageVersion']; if (languageVersionRaw != null) { if (languageVersionRaw is! String) { @@ -252,7 +246,7 @@ } /// Convert to JSON structure. - Map<String, Object> toJson() => { + Map<String, Object?> toJson() => { 'name': name, 'rootUri': rootUri.toString(), if (packageUri != null) 'packageUri': packageUri?.toString(),
diff --git a/lib/src/rate_limited_scheduler.dart b/lib/src/rate_limited_scheduler.dart index 6e62310..daeb76f 100644 --- a/lib/src/rate_limited_scheduler.dart +++ b/lib/src/rate_limited_scheduler.dart
@@ -2,12 +2,9 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.10 - import 'dart:async'; import 'dart:collection'; -import 'package:meta/meta.dart'; import 'package:pedantic/pedantic.dart'; import 'package:pool/pool.dart'; @@ -65,7 +62,7 @@ final Set<J> _started = {}; RateLimitedScheduler(Future<V> Function(J) runJob, - {@required int maxConcurrentOperations}) + {required int maxConcurrentOperations}) : _runJob = runJob, _pool = Pool(maxConcurrentOperations); @@ -77,7 +74,7 @@ return; } final task = _queue.removeFirst(); - final completer = _cache[task.jobId]; + final completer = _cache[task.jobId]!; if (!_started.add(task.jobId)) { return; @@ -140,7 +137,7 @@ /// Returns the result of running [jobId] if that is already done. /// Otherwise returns `null`. - V peek(J jobId) => _results[jobId]; + V? peek(J jobId) => _results[jobId]; } class _Task<J> {
diff --git a/tool/test.dart b/tool/test.dart index 2f4769d..e7877a2 100755 --- a/tool/test.dart +++ b/tool/test.dart
@@ -3,8 +3,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// @dart=2.10 - /// Test wrapper script. /// Many of the integration tests runs the `pub` command, this is slow if every /// invocation requires the dart compiler to load all the sources. This script @@ -19,7 +17,7 @@ import 'package:pub/src/exceptions.dart'; Future<void> main(List<String> args) async { - Process testProcess; + Process? testProcess; final sub = ProcessSignal.sigint.watch().listen((signal) { testProcess?.kill(signal); });