Skip to content

Commit 7403992

Browse files
[tool] Update to Dart 3 (#6030)
Updates the repo tooling to Dart 3, now that the N-2 version has Dart 3, which allows us to use Dart 3 features (e.g., records) going forward. To allow the update: - Removes `break` commands from `switch`es (all done automatically with `dart fix --apply`) - Replaces mocking of `ProcessResult` with just creating an actual `ProcessResult` since it's a `final` data class and thus can't (but also doesn't need to be) mocked.
1 parent 9382257 commit 7403992

15 files changed

+70
-99
lines changed

script/tool/lib/src/common/package_looping_command.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ abstract class PackageLoopingCommand extends PackageCommand {
123123
switch (packageLoopingType) {
124124
case PackageLoopingType.topLevelOnly:
125125
yield* getTargetPackages(filterExcluded: false);
126-
break;
127126
case PackageLoopingType.includeExamples:
128127
await for (final PackageEnumerationEntry packageEntry
129128
in getTargetPackages(filterExcluded: false)) {
@@ -135,10 +134,8 @@ abstract class PackageLoopingCommand extends PackageCommand {
135134
package,
136135
excluded: packageEntry.excluded)));
137136
}
138-
break;
139137
case PackageLoopingType.includeAllSubpackages:
140138
yield* getTargetPackagesAndSubpackages(filterExcluded: false);
141-
break;
142139
}
143140
}
144141

script/tool/lib/src/common/repository_package.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,22 +72,16 @@ class RepositoryPackage {
7272
switch (platform) {
7373
case FlutterPlatform.android:
7474
directoryName = 'android';
75-
break;
7675
case FlutterPlatform.ios:
7776
directoryName = 'ios';
78-
break;
7977
case FlutterPlatform.linux:
8078
directoryName = 'linux';
81-
break;
8279
case FlutterPlatform.macos:
8380
directoryName = 'macos';
84-
break;
8581
case FlutterPlatform.web:
8682
directoryName = 'web';
87-
break;
8883
case FlutterPlatform.windows:
8984
directoryName = 'windows';
90-
break;
9185
}
9286
return directory.childDirectory(directoryName);
9387
}

script/tool/lib/src/fetch_deps_command.dart

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,30 +125,23 @@ class FetchDepsCommand extends PackageLoopingCommand {
125125
switch (platform) {
126126
case FlutterPlatform.android:
127127
result = await _fetchAndroidDeps(package);
128-
break;
129128
case FlutterPlatform.ios:
130129
result = await _fetchDarwinDeps(package, platformIOS);
131-
break;
132130
case FlutterPlatform.macos:
133131
result = await _fetchDarwinDeps(package, platformMacOS);
134-
break;
135132
case FlutterPlatform.linux:
136133
case FlutterPlatform.web:
137134
case FlutterPlatform.windows:
138135
// No native dependency handling yet.
139136
result = PackageResult.skip('Nothing to do for $platform.');
140-
break;
141137
}
142138
switch (result.state) {
143139
case RunState.succeeded:
144140
fetchedDeps = true;
145-
break;
146141
case RunState.skipped:
147142
skips.add(result.details.first);
148-
break;
149143
case RunState.failed:
150144
errors.addAll(result.details);
151-
break;
152145
case RunState.excluded:
153146
throw StateError('Unreachable');
154147
}

script/tool/lib/src/list_command.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,26 +42,22 @@ class ListCommand extends PackageCommand {
4242
await for (final PackageEnumerationEntry entry in getTargetPackages()) {
4343
print(entry.package.path);
4444
}
45-
break;
4645
case _example:
4746
final Stream<RepositoryPackage> examples = getTargetPackages()
4847
.expand<RepositoryPackage>(
4948
(PackageEnumerationEntry entry) => entry.package.getExamples());
5049
await for (final RepositoryPackage package in examples) {
5150
print(package.path);
5251
}
53-
break;
5452
case _allPackage:
5553
await for (final PackageEnumerationEntry entry
5654
in getTargetPackagesAndSubpackages()) {
5755
print(entry.package.path);
5856
}
59-
break;
6057
case _file:
6158
await for (final File file in getFiles()) {
6259
print(file.path);
6360
}
64-
break;
6561
}
6662
}
6763
}

script/tool/lib/src/native_test_command.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,6 @@ this command.
481481
switch (exitCode) {
482482
case xcodebuildNoTestExitCode:
483483
_printNoExampleTestsMessage(example, platform);
484-
break;
485484
case 0:
486485
printSuccess('Successfully ran $platform xctest for $exampleName');
487486
// If this is the first test, assume success until something fails.
@@ -491,7 +490,6 @@ this command.
491490
if (exampleHasUnitTests) {
492491
ranUnitTests = true;
493492
}
494-
break;
495493
default:
496494
// Any failure means a failure overall.
497495
overallResult = RunState.failed;

script/tool/lib/src/update_dependency_command.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ class UpdateDependencyCommand extends PackageLoopingCommand {
113113
switch (response.result) {
114114
case PubVersionFinderResult.success:
115115
_targetVersion = response.versions.first.toString();
116-
break;
117116
case PubVersionFinderResult.fail:
118117
printError('''
119118
Error fetching $_targetPubPackage version from pub: ${response.httpResponse.statusCode}:

script/tool/lib/src/update_excerpts_command.dart

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -138,20 +138,15 @@ class UpdateExcerptsCommand extends PackageLoopingCommand {
138138
switch (extension) {
139139
case '':
140140
language = 'txt';
141-
break;
142141
case '.kt':
143142
language = 'kotlin';
144-
break;
145143
case '.cc':
146144
case '.cpp':
147145
language = 'c++';
148-
break;
149146
case '.m':
150147
language = 'objectivec';
151-
break;
152148
case '.gradle':
153149
language = 'groovy';
154-
break;
155150
default:
156151
language = extension.substring(1);
157152
break;
@@ -173,7 +168,6 @@ class UpdateExcerptsCommand extends PackageLoopingCommand {
173168
}
174169
}
175170
output.writeln(line);
176-
break;
177171
case _ExcerptParseMode.pragma:
178172
if (!line.startsWith('```')) {
179173
errors.add(
@@ -195,7 +189,6 @@ class UpdateExcerptsCommand extends PackageLoopingCommand {
195189
mode = _ExcerptParseMode.injecting;
196190
}
197191
output.writeln(line);
198-
break;
199192
case _ExcerptParseMode.injecting:
200193
if (line == '```') {
201194
if (existingBlock.toString() != excerpt) {
@@ -210,7 +203,6 @@ class UpdateExcerptsCommand extends PackageLoopingCommand {
210203
} else {
211204
existingBlock.writeln(line);
212205
}
213-
break;
214206
}
215207
}
216208
if (detectedChange) {
@@ -250,23 +242,18 @@ class UpdateExcerptsCommand extends PackageLoopingCommand {
250242
case 'objectivec':
251243
case 'swift':
252244
prefix = '// ';
253-
break;
254245
case 'css':
255246
prefix = '/* ';
256247
suffix = ' */';
257-
break;
258248
case 'html':
259249
case 'xml':
260250
prefix = '<!--';
261251
suffix = '-->';
262252
padding = ' ';
263-
break;
264253
case 'yaml':
265254
prefix = '# ';
266-
break;
267255
case 'sh':
268256
prefix = '# ';
269-
break;
270257
}
271258
final String startRegionMarker = '$prefix#docregion $section$suffix';
272259
final String endRegionMarker = '$prefix#enddocregion $section$suffix';

script/tool/lib/src/update_release_info_command.dart

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,8 @@ class UpdateReleaseInfoCommand extends PackageLoopingCommand {
100100
switch (getStringArg(_versionTypeFlag)) {
101101
case _versionMinor:
102102
_versionChange = _VersionIncrementType.minor;
103-
break;
104103
case _versionBugfix:
105104
_versionChange = _VersionIncrementType.bugfix;
106-
break;
107105
case _versionMinimal:
108106
final GitVersionFinder gitVersionFinder = await retrieveVersionFinder();
109107
// If the line below fails with "Not a valid object name FETCH_HEAD"
@@ -113,10 +111,8 @@ class UpdateReleaseInfoCommand extends PackageLoopingCommand {
113111
_changedFiles = await gitVersionFinder.getChangedFiles();
114112
// Anothing other than a fixed change is null.
115113
_versionChange = null;
116-
break;
117114
case _versionNext:
118115
_versionChange = null;
119-
break;
120116
default:
121117
throw UnimplementedError('Unimplemented version change type');
122118
}
@@ -169,10 +165,8 @@ class UpdateReleaseInfoCommand extends PackageLoopingCommand {
169165
switch (updateOutcome) {
170166
case _ChangelogUpdateOutcome.addedSection:
171167
print('${indentation}Added a $nextVersionString section.');
172-
break;
173168
case _ChangelogUpdateOutcome.updatedSection:
174169
print('${indentation}Updated NEXT section.');
175-
break;
176170
case _ChangelogUpdateOutcome.failed:
177171
return PackageResult.fail(<String>['Could not update CHANGELOG.md.']);
178172
}
@@ -217,7 +211,6 @@ class UpdateReleaseInfoCommand extends PackageLoopingCommand {
217211
].forEach(newChangelog.writeln);
218212
state = _ChangelogUpdateState.finishedUpdating;
219213
}
220-
break;
221214
case _ChangelogUpdateState.findingFirstListItem:
222215
final RegExpMatch? match = listItemPattern.firstMatch(line);
223216
if (match != null) {
@@ -239,11 +232,9 @@ class UpdateReleaseInfoCommand extends PackageLoopingCommand {
239232
printError(' Existing NEXT section has unrecognized format.');
240233
return _ChangelogUpdateOutcome.failed;
241234
}
242-
break;
243235
case _ChangelogUpdateState.finishedUpdating:
244236
// Once changes are done, add the rest of the lines as-is.
245237
newChangelog.writeln(line);
246-
break;
247238
}
248239
}
249240

script/tool/lib/src/version_check_command.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,20 +210,16 @@ class VersionCheckCommand extends PackageLoopingCommand {
210210
switch (versionState) {
211211
case _CurrentVersionState.unchanged:
212212
versionChanged = false;
213-
break;
214213
case _CurrentVersionState.validIncrease:
215214
case _CurrentVersionState.validRevert:
216215
case _CurrentVersionState.newPackage:
217216
versionChanged = true;
218-
break;
219217
case _CurrentVersionState.invalidChange:
220218
versionChanged = true;
221219
errors.add('Disallowed version change.');
222-
break;
223220
case _CurrentVersionState.unknown:
224221
versionChanged = false;
225222
errors.add('Unable to determine previous version.');
226-
break;
227223
}
228224

229225
if (!(await _validateChangelogVersion(package,

script/tool/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dependencies:
2828
dev_dependencies:
2929
build_runner: ^2.0.3
3030
matcher: ^0.12.10
31-
mockito: '>=5.3.2 <=5.4.0'
31+
mockito: '>=5.3.2 <=5.5.0'
3232

3333
environment:
34-
sdk: '>=2.18.0 <4.0.0'
34+
sdk: '>=3.0.0 <4.0.0'

0 commit comments

Comments
 (0)