Make version and time in flutter_tool null safe (#78836)

This commit is contained in:
Jenn Magder 2021-03-23 10:03:23 -07:00 committed by GitHub
parent 0bde67e734
commit 5a21e2d877
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 10 deletions

View File

@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
/// A class for making time based operations testable.
class SystemClock {
/// A const constructor to allow subclasses to be const.

View File

@ -2,14 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// @dart = 2.8
import 'package:meta/meta.dart';
@immutable
class Version implements Comparable<Version> {
/// Creates a new [Version] object.
factory Version(int major, int minor, int patch, {String text}) {
factory Version(int? major, int? minor, int? patch, {String? text}) {
if (text == null) {
text = major == null ? '0' : '$major';
if (minor != null) {
@ -36,8 +34,8 @@ class Version implements Comparable<Version> {
}
/// Creates a new [Version] by parsing [text].
factory Version.parse(String text) {
final Match match = versionPattern.firstMatch(text ?? '');
static Version? parse(String? text) {
final Match? match = versionPattern.firstMatch(text ?? '');
if (match == null) {
return null;
}
@ -46,7 +44,7 @@ class Version implements Comparable<Version> {
final int major = int.parse(match[1] ?? '0');
final int minor = int.parse(match[3] ?? '0');
final int patch = int.parse(match[5] ?? '0');
return Version._(major, minor, patch, text);
return Version._(major, minor, patch, text ?? '');
} on FormatException {
return null;
}
@ -55,8 +53,8 @@ class Version implements Comparable<Version> {
/// Returns the primary version out of a list of candidates.
///
/// This is the highest-numbered stable version.
static Version primary(List<Version> versions) {
Version primary;
static Version? primary(List<Version> versions) {
Version? primary;
for (final Version version in versions) {
if (primary == null || (version > primary)) {
primary = version;