diff --git a/app/lib/fake/backend/fake_pub_worker.dart b/app/lib/fake/backend/fake_pub_worker.dart index a03cdb4d89..58ad553393 100644 --- a/app/lib/fake/backend/fake_pub_worker.dart +++ b/app/lib/fake/backend/fake_pub_worker.dart @@ -15,7 +15,6 @@ import 'package:gcloud/service_scope.dart'; import 'package:http/http.dart'; import 'package:http_parser/http_parser.dart'; import 'package:indexed_blob/indexed_blob.dart'; -import 'package:meta/meta.dart'; import 'package:pana/pana.dart'; import 'package:path/path.dart' as p; import 'package:pub_dev/fake/backend/fake_pana_runner.dart'; @@ -303,8 +302,7 @@ Future _upload( ); }, retryIf: (e) => e is IOException || e is IntermittentUploadException); -@sealed -class UploadException implements Exception { +final class UploadException implements Exception { final String message; UploadException(this.message); @@ -313,8 +311,7 @@ class UploadException implements Exception { String toString() => message; } -@sealed -class IntermittentUploadException extends UploadException { +final class IntermittentUploadException extends UploadException { IntermittentUploadException(String message) : super(message); } diff --git a/app/lib/shared/configuration.dart b/app/lib/shared/configuration.dart index af3a13411c..eafcbfbf66 100644 --- a/app/lib/shared/configuration.dart +++ b/app/lib/shared/configuration.dart @@ -47,14 +47,13 @@ const _fakeExternalAudience = 'https://pub.dev'; /// The configuration define the location of the Datastore with the /// package metadata and the Cloud Storage bucket for the actual package /// tar files. -@sealed @JsonSerializable( anyMap: true, explicitToJson: true, checked: true, disallowUnrecognizedKeys: true, ) -class Configuration { +final class Configuration { /// The name of the Cloud Storage bucket to use for storing the uploaded /// package archives. /// diff --git a/app/lib/task/cloudcompute/cloudcompute.dart b/app/lib/task/cloudcompute/cloudcompute.dart index f953789214..a9145bf2a2 100644 --- a/app/lib/task/cloudcompute/cloudcompute.dart +++ b/app/lib/task/cloudcompute/cloudcompute.dart @@ -2,8 +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. -import 'package:meta/meta.dart'; - /// Interface describing an instance. abstract class CloudInstance { /// Unique instance name. @@ -105,11 +103,10 @@ abstract class CloudCompute { /// /// The caller is expected to back-off using the zone for a while before trying /// to create new VMs in the zone again. -@sealed -class ZoneExhaustedException implements Exception { +final class ZoneExhaustedException implements Exception { final String zone; - final String message; + ZoneExhaustedException(this.zone, this.message); @override @@ -121,9 +118,9 @@ class ZoneExhaustedException implements Exception { /// /// The caller is expected to back-off for a while before trying to create /// new VMs. -@sealed -class QuotaExhaustedException implements Exception { +final class QuotaExhaustedException implements Exception { final String message; + QuotaExhaustedException(this.message); @override diff --git a/app/lib/task/cloudcompute/fakecloudcompute.dart b/app/lib/task/cloudcompute/fakecloudcompute.dart index c51347f15f..e08a4c1bb8 100644 --- a/app/lib/task/cloudcompute/fakecloudcompute.dart +++ b/app/lib/task/cloudcompute/fakecloudcompute.dart @@ -8,7 +8,6 @@ import 'dart:io'; import 'package:clock/clock.dart'; import 'package:collection/collection.dart'; import 'package:logging/logging.dart'; -import 'package:meta/meta.dart'; import 'package:path/path.dart' as p; import 'package:pub_dev/frontend/static_files.dart'; @@ -18,8 +17,7 @@ final _log = Logger('pub.fakecloudcompute'); typedef InstanceRunner = Future Function(FakeCloudInstance instance); -@sealed -class FakeCloudCompute extends CloudCompute { +final class FakeCloudCompute extends CloudCompute { var _nextInstanceId = 1; final _instances = {}; final InstanceRunner _instanceRunner; @@ -221,8 +219,7 @@ Future _defaultInstanceRunner(FakeCloudInstance instance) async { _log.info('pub_worker exit code: $exitCode'); } -@sealed -class FakeCloudInstance extends CloudInstance { +final class FakeCloudInstance extends CloudInstance { @override final String instanceName; diff --git a/app/lib/task/cloudcompute/googlecloudcompute.dart b/app/lib/task/cloudcompute/googlecloudcompute.dart index d7fcf60b6b..73ac7e8f44 100644 --- a/app/lib/task/cloudcompute/googlecloudcompute.dart +++ b/app/lib/task/cloudcompute/googlecloudcompute.dart @@ -12,7 +12,6 @@ import 'package:googleapis/compute/v1.dart' hide Duration; import 'package:googleapis/compute/v1.dart' as compute_v1 show Duration; import 'package:http/http.dart' as http; import 'package:logging/logging.dart' show Logger; -import 'package:meta/meta.dart'; import 'package:pub_dev/shared/utils.dart' show createUuid; import 'package:pub_dev/task/cloudcompute/cloudcompute.dart'; import 'package:retry/retry.dart'; @@ -221,7 +220,7 @@ Future deleteAbandonedInstances({ } } -class _GoogleCloudInstance extends CloudInstance { +final class _GoogleCloudInstance extends CloudInstance { /// GCP zone this instance exists inside. @override final String zone; @@ -248,7 +247,7 @@ class _GoogleCloudInstance extends CloudInstance { } } -class _PendingGoogleCloudInstance extends CloudInstance { +final class _PendingGoogleCloudInstance extends CloudInstance { /// GCP zone this instance exists inside. @override final String zone; @@ -304,8 +303,7 @@ final _validInstanceNamePattern = RegExp(r'^[a-z]([-a-z0-9]*[a-z0-9])?$'); String _shellSingleQuote(String string) => "'${string.replaceAll("'", "'\\''")}'"; -@sealed -class _GoogleCloudCompute extends CloudCompute { +final class _GoogleCloudCompute extends CloudCompute { final ComputeApi _api; /// GCP project this instance is managing VMs inside. diff --git a/app/test/task/fake_time.dart b/app/test/task/fake_time.dart index 29b7631afc..fc2b44b6a8 100644 --- a/app/test/task/fake_time.dart +++ b/app/test/task/fake_time.dart @@ -7,7 +7,6 @@ import 'dart:math'; import 'package:clock/clock.dart'; import 'package:collection/collection.dart'; -import 'package:meta/meta.dart' show sealed; // TODO(jonasfj): Document this concept, maybe give it a better name and see if // we can publish it as a separate package. Maybe, it should be @@ -16,8 +15,7 @@ import 'package:meta/meta.dart' show sealed; // Or something else clever, without being too clever! // Or maybe we should rename _TravelingTimer to _FakeTimer. -@sealed -abstract class FakeTime { +abstract final class FakeTime { FakeTime._(); Future elapse({ @@ -88,7 +86,7 @@ abstract class FakeTime { } } -class _FakeTime extends FakeTime { +final class _FakeTime extends FakeTime { final DateTime Function() _originalTime; Duration _offset; diff --git a/pkg/_pub_shared/lib/data/task_payload.dart b/pkg/_pub_shared/lib/data/task_payload.dart index c88c211ce4..3d3bbbbe46 100644 --- a/pkg/_pub_shared/lib/data/task_payload.dart +++ b/pkg/_pub_shared/lib/data/task_payload.dart @@ -5,14 +5,12 @@ import 'dart:collection'; import 'package:json_annotation/json_annotation.dart'; -import 'package:meta/meta.dart'; part 'task_payload.g.dart'; /// JSON payload given as single argument to the `pub_worker.dart` command. -@sealed @JsonSerializable() -class Payload { +final class Payload { /// Package name of the package to be processed. final String package; @@ -49,9 +47,8 @@ class Payload { } /// Pair of [version] and [token]. -@sealed @JsonSerializable() -class VersionTokenPair { +final class VersionTokenPair { /// Version of [Payload.package] to be processed. final String version; diff --git a/pkg/indexed_blob/lib/indexed_blob.dart b/pkg/indexed_blob/lib/indexed_blob.dart index 1e699713e1..4e11cdb203 100644 --- a/pkg/indexed_blob/lib/indexed_blob.dart +++ b/pkg/indexed_blob/lib/indexed_blob.dart @@ -23,7 +23,6 @@ import 'dart:convert' show utf8; import 'dart:typed_data'; import 'package:jsontool/jsontool.dart' show JsonReader, jsonStringWriter, JsonSink; -import 'package:meta/meta.dart'; export 'src/blobindexpair.dart' show BlobIndexPair; @@ -48,8 +47,7 @@ export 'src/blobindexpair.dart' show BlobIndexPair; /// // Finish building, and create the index /// await File('mydata.index').writeBytes(); /// ``` -@sealed -class IndexedBlobBuilder { +final class IndexedBlobBuilder { final StreamSink> _blob; int _offset = 0; final Map _index = {}; @@ -225,8 +223,7 @@ bool _skipUntilKey(JsonReader r, String key) { /// } /// ``` /// -@sealed -class BlobIndex { +final class BlobIndex { final Uint8List _indexFile; /// Create [BlobIndex] from [indexFile] contents. @@ -411,8 +408,7 @@ class BlobIndex { } /// Range of a file in an indexed-blob. -@sealed -class FileRange { +final class FileRange { /// Path that was looked up in [BlobIndex]. final String path; diff --git a/pkg/indexed_blob/lib/src/blobindexpair.dart b/pkg/indexed_blob/lib/src/blobindexpair.dart index 18029e2ef9..dff91a77db 100644 --- a/pkg/indexed_blob/lib/src/blobindexpair.dart +++ b/pkg/indexed_blob/lib/src/blobindexpair.dart @@ -7,13 +7,11 @@ import 'dart:io' show Directory, File, gzip; import 'dart:typed_data' show Uint8List; import 'package:async/async.dart'; -import 'package:meta/meta.dart'; import 'package:path/path.dart' as p; import '../indexed_blob.dart' show IndexedBlobBuilder, BlobIndex; /// Pair containing and in-memory [blob] and matching [index]. -@sealed -class BlobIndexPair { +final class BlobIndexPair { /// Blob indexed by [index]. final Uint8List blob; diff --git a/pkg/pub_worker/lib/src/sdks.dart b/pkg/pub_worker/lib/src/sdks.dart index 44e63cc611..64ca738af3 100644 --- a/pkg/pub_worker/lib/src/sdks.dart +++ b/pkg/pub_worker/lib/src/sdks.dart @@ -5,12 +5,10 @@ import 'dart:io'; import 'package:collection/collection.dart'; -import 'package:meta/meta.dart'; import 'package:path/path.dart' as p; import 'package:pub_semver/pub_semver.dart' show Version; -@sealed -class InstalledSdk { +final class InstalledSdk { final String kind; final String path; final Version version; diff --git a/pkg/pub_worker/lib/src/upload.dart b/pkg/pub_worker/lib/src/upload.dart index 1bf516173f..8ee5342a86 100644 --- a/pkg/pub_worker/lib/src/upload.dart +++ b/pkg/pub_worker/lib/src/upload.dart @@ -10,7 +10,6 @@ import 'package:http/http.dart' show Client, ClientException, MultipartFile, MultipartRequest, Response; import 'package:http_parser/http_parser.dart' show MediaType; import 'package:logging/logging.dart' show Logger; -import 'package:meta/meta.dart'; import 'package:retry/retry.dart' show retry; final _log = Logger('pub_worker.upload'); @@ -69,8 +68,7 @@ Future upload( e is TimeoutException, delayFactor: Duration(seconds: 5)); -@sealed -class UploadException implements Exception { +final class UploadException implements Exception { final String message; UploadException(this.message); @@ -79,7 +77,6 @@ class UploadException implements Exception { String toString() => message; } -@sealed -class IntermittentUploadException extends UploadException { +final class IntermittentUploadException extends UploadException { IntermittentUploadException(String message) : super(message); }