Fix newly enforced package:pedantic lints (#45)
- annotate_overrides
- omit_local_variable_types
- prefer_final_fields
- prefer_spread_collections
- unnecessary_this
- use_function_type_syntax_for_parameters
Fix travis to fail for lints with `--fatal-infos`.
Stop enforcing `sort_unnamed_constructor_first`.
Bump minimum SDK to 2.3.0 to allow spreads in collection literals.
Drop unused author field from pubspec.
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 10a2849..9781e73 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -21,7 +21,6 @@
- package_prefixed_library_names
- prefer_is_not_empty
- slash_for_doc_comments
- - sort_unnamed_constructors_first
# - type_annotate_public_apis
- type_init_formals
- unnecessary_brace_in_string_interps
diff --git a/e2e_test/lib/async_worker.dart b/e2e_test/lib/async_worker.dart
index 3c7607b..075a5e6 100644
--- a/e2e_test/lib/async_worker.dart
+++ b/e2e_test/lib/async_worker.dart
@@ -14,6 +14,7 @@
ExampleAsyncWorker([SendPort sendPort])
: super(connection: AsyncWorkerConnection(sendPort: sendPort));
+ @override
Future<WorkResponse> performRequest(WorkRequest request) async {
return WorkResponse()
..exitCode = 0
diff --git a/e2e_test/lib/forwards_to_isolate_async_worker.dart b/e2e_test/lib/forwards_to_isolate_async_worker.dart
index a09d3ee..bb937b2 100644
--- a/e2e_test/lib/forwards_to_isolate_async_worker.dart
+++ b/e2e_test/lib/forwards_to_isolate_async_worker.dart
@@ -20,6 +20,7 @@
ForwardsToIsolateAsyncWorker(this._isolateDriverConnection);
+ @override
Future<WorkResponse> performRequest(WorkRequest request) {
_isolateDriverConnection.writeRequest(request);
return _isolateDriverConnection.readResponse();
diff --git a/e2e_test/lib/sync_worker.dart b/e2e_test/lib/sync_worker.dart
index 270c555..789f780 100644
--- a/e2e_test/lib/sync_worker.dart
+++ b/e2e_test/lib/sync_worker.dart
@@ -7,6 +7,7 @@
/// Example worker that just returns in its response all the arguments passed
/// separated by newlines.
class ExampleSyncWorker extends SyncWorkerLoop {
+ @override
WorkResponse performRequest(WorkRequest request) {
return WorkResponse()
..exitCode = 0
diff --git a/e2e_test/test/e2e_test.dart b/e2e_test/test/e2e_test.dart
index 028213f..faae0d3 100644
--- a/e2e_test/test/e2e_test.dart
+++ b/e2e_test/test/e2e_test.dart
@@ -54,7 +54,7 @@
return request;
});
var responses = await Future.wait(requests.map(driver.doWork));
- for (int i = 0; i < responses.length; i++) {
+ for (var i = 0; i < responses.length; i++) {
var request = requests[i];
var response = responses[i];
expect(response.exitCode, EXIT_CODE_OK);
diff --git a/lib/src/async_message_grouper.dart b/lib/src/async_message_grouper.dart
index dba4748..5d1cbf5 100644
--- a/lib/src/async_message_grouper.dart
+++ b/lib/src/async_message_grouper.dart
@@ -30,6 +30,7 @@
: _inputQueue = StreamQueue(inputStream);
/// Returns the next full message that is received, or null if none are left.
+ @override
Future<List<int>> get next async {
try {
List<int> message;
diff --git a/lib/src/driver/driver.dart b/lib/src/driver/driver.dart
index c4d1e92..06b7d3a 100644
--- a/lib/src/driver/driver.dart
+++ b/lib/src/driver/driver.dart
@@ -46,9 +46,9 @@
BazelWorkerDriver(this._spawnWorker,
{int maxIdleWorkers, int maxWorkers, int maxRetries})
- : this._maxIdleWorkers = maxIdleWorkers ?? 4,
- this._maxWorkers = maxWorkers ?? 4,
- this._maxRetries = maxRetries ?? 4;
+ : _maxIdleWorkers = maxIdleWorkers ?? 4,
+ _maxWorkers = maxWorkers ?? 4,
+ _maxRetries = maxRetries ?? 4;
/// Waits for an available worker, and then sends [WorkRequest] to it.
///
@@ -129,7 +129,7 @@
/// Once the worker responds then it will be added back to the pool of idle
/// workers.
void _runWorker(Process worker, _WorkAttempt attempt) {
- bool rescheduled = false;
+ var rescheduled = false;
runZoned(() async {
var connection = _workerConnections[worker];
diff --git a/lib/src/message_grouper_state.dart b/lib/src/message_grouper_state.dart
index 91419bc..5cbf933 100644
--- a/lib/src/message_grouper_state.dart
+++ b/lib/src/message_grouper_state.dart
@@ -105,7 +105,7 @@
return _message;
}
- Uint8List _message;
+ final Uint8List _message;
/// If [_done] is `false`, the number of message bytes that have been received
/// so far. Otherwise zero.
diff --git a/lib/src/sync_message_grouper.dart b/lib/src/sync_message_grouper.dart
index d86ef8d..c0d11f0 100644
--- a/lib/src/sync_message_grouper.dart
+++ b/lib/src/sync_message_grouper.dart
@@ -17,6 +17,7 @@
/// Blocks until the next full message is received, and then returns it.
///
/// Returns null at end of file.
+ @override
List<int> get next {
try {
List<int> message;
diff --git a/lib/src/worker/async_worker_loop.dart b/lib/src/worker/async_worker_loop.dart
index db22b9a..9405c4f 100644
--- a/lib/src/worker/async_worker_loop.dart
+++ b/lib/src/worker/async_worker_loop.dart
@@ -16,13 +16,15 @@
final AsyncWorkerConnection connection;
AsyncWorkerLoop({AsyncWorkerConnection connection})
- : this.connection = connection ?? StdAsyncWorkerConnection();
+ : connection = connection ?? StdAsyncWorkerConnection();
/// Perform a single [WorkRequest], and return a [WorkResponse].
+ @override
Future<WorkResponse> performRequest(WorkRequest request);
/// Run the worker loop. The returned [Future] doesn't complete until
/// [connection#readRequest] returns `null`.
+ @override
Future run() async {
while (true) {
WorkResponse response;
diff --git a/lib/src/worker/sync_worker_loop.dart b/lib/src/worker/sync_worker_loop.dart
index 799ec65..2d287b0 100644
--- a/lib/src/worker/sync_worker_loop.dart
+++ b/lib/src/worker/sync_worker_loop.dart
@@ -15,12 +15,14 @@
final SyncWorkerConnection connection;
SyncWorkerLoop({SyncWorkerConnection connection})
- : this.connection = connection ?? StdSyncWorkerConnection();
+ : connection = connection ?? StdSyncWorkerConnection();
/// Perform a single [WorkRequest], and return a [WorkResponse].
+ @override
WorkResponse performRequest(WorkRequest request);
/// Run the worker loop. Blocks until [connection#readRequest] returns `null`.
+ @override
void run() {
while (true) {
WorkResponse response;
diff --git a/lib/src/worker/worker_connection.dart b/lib/src/worker/worker_connection.dart
index 6e072a3..a429cfe 100644
--- a/lib/src/worker/worker_connection.dart
+++ b/lib/src/worker/worker_connection.dart
@@ -43,6 +43,7 @@
}
abstract class SyncWorkerConnection implements WorkerConnection {
+ @override
WorkRequest readRequest();
}
diff --git a/lib/src/worker_protocol.pb.dart b/lib/src/worker_protocol.pb.dart
index b15b03b..90e4381 100644
--- a/lib/src/worker_protocol.pb.dart
+++ b/lib/src/worker_protocol.pb.dart
@@ -4,6 +4,7 @@
//
// @dart = 2.3
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
+// ignore_for_file: annotate_overrides
import 'dart:core' as $core;
diff --git a/lib/testing.dart b/lib/testing.dart
index 08e6bd0..037aa1e 100644
--- a/lib/testing.dart
+++ b/lib/testing.dart
@@ -26,11 +26,13 @@
final Queue<int> pendingBytes = Queue<int>();
/// Adds all the [bytes] to this stream.
+ @override
void addInputBytes(List<int> bytes) {
pendingBytes.addAll(bytes);
}
/// Add a -1 to signal EOF.
+ @override
void close() {
pendingBytes.add(-1);
}
@@ -55,18 +57,20 @@
StreamController<Uint8List> get controller => _controller;
/// Adds all the [bytes] to this stream.
+ @override
void addInputBytes(List<int> bytes) {
_controller.add(Uint8List.fromList(bytes));
}
/// Closes this stream. This is necessary for the [AsyncWorkerLoop] to exit.
+ @override
void close() {
_controller.close();
}
@override
- StreamSubscription<Uint8List> listen(onData(Uint8List bytes),
- {Function onError, void onDone(), bool cancelOnError}) {
+ StreamSubscription<Uint8List> listen(void Function(Uint8List bytes) onData,
+ {Function onError, void Function() onDone, bool cancelOnError}) {
return _controller.stream.listen(onData,
onError: onError, onDone: onDone, cancelOnError: cancelOnError);
}
@@ -108,6 +112,7 @@
/// A [StdSyncWorkerConnection] which records its responses.
class TestSyncWorkerConnection extends StdSyncWorkerConnection
implements TestWorkerConnection {
+ @override
final List<WorkResponse> responses = <WorkResponse>[];
TestSyncWorkerConnection(Stdin stdinStream, Stdout stdoutStream)
@@ -141,6 +146,7 @@
/// Adds [response] to the queue. These will be returned from
/// [performResponse] in the order they are added, otherwise it will throw
/// if the queue is empty.
+ @override
void enqueueResponse(WorkResponse response) {
_responses.addLast(response);
}
@@ -149,6 +155,7 @@
/// A [StdAsyncWorkerConnection] which records its responses.
class TestAsyncWorkerConnection extends StdAsyncWorkerConnection
implements TestWorkerConnection {
+ @override
final List<WorkResponse> responses = <WorkResponse>[];
TestAsyncWorkerConnection(
@@ -183,6 +190,7 @@
/// Adds [response] to the queue. These will be returned from
/// [performResponse] in the order they are added, otherwise it will throw
/// if the queue is empty.
+ @override
void enqueueResponse(WorkResponse response) {
_responses.addLast(response);
}
diff --git a/pubspec.yaml b/pubspec.yaml
index cf1b0a8..0814989 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,12 +1,11 @@
name: bazel_worker
-version: 0.1.23
+version: 0.1.24-dev
description: Tools for creating a bazel persistent worker.
-author: Dart Team <misc@dartlang.org>
homepage: https://github.com/dart-lang/bazel_worker
environment:
- sdk: '>=2.1.0 <3.0.0'
+ sdk: '>=2.3.0 <3.0.0'
dependencies:
async: '>1.9.0 <3.0.0'
diff --git a/test/driver_test.dart b/test/driver_test.dart
index 8318e51..9dcbe53 100644
--- a/test/driver_test.dart
+++ b/test/driver_test.dart
@@ -22,11 +22,11 @@
test('can run multiple batches of requests through multiple workers',
() async {
- int maxWorkers = 4;
- int maxIdleWorkers = 2;
+ var maxWorkers = 4;
+ var maxIdleWorkers = 2;
driver = BazelWorkerDriver(MockWorker.spawn,
maxWorkers: maxWorkers, maxIdleWorkers: maxIdleWorkers);
- for (int i = 0; i < 10; i++) {
+ for (var i = 0; i < 10; i++) {
await _doRequests(driver: driver);
expect(MockWorker.liveWorkers.length, maxIdleWorkers);
// No workers should be killed while there is ongoing work, but they
@@ -37,11 +37,11 @@
});
test('can run multiple requests through one worker', () async {
- int maxWorkers = 1;
- int maxIdleWorkers = 1;
+ var maxWorkers = 1;
+ var maxIdleWorkers = 1;
driver = BazelWorkerDriver(MockWorker.spawn,
maxWorkers: maxWorkers, maxIdleWorkers: maxIdleWorkers);
- for (int i = 0; i < 10; i++) {
+ for (var i = 0; i < 10; i++) {
await _doRequests(driver: driver);
expect(MockWorker.liveWorkers.length, 1);
expect(MockWorker.deadWorkers.length, 0);
@@ -51,7 +51,7 @@
test('can run one request through multiple workers', () async {
driver =
BazelWorkerDriver(MockWorker.spawn, maxWorkers: 4, maxIdleWorkers: 4);
- for (int i = 0; i < 10; i++) {
+ for (var i = 0; i < 10; i++) {
await _doRequests(driver: driver, count: 1);
expect(MockWorker.liveWorkers.length, 1);
expect(MockWorker.deadWorkers.length, 0);
@@ -59,10 +59,10 @@
});
test('can run with maxIdleWorkers == 0', () async {
- int maxWorkers = 4;
+ var maxWorkers = 4;
driver = BazelWorkerDriver(MockWorker.spawn,
maxWorkers: maxWorkers, maxIdleWorkers: 0);
- for (int i = 0; i < 10; i++) {
+ for (var i = 0; i < 10; i++) {
await _doRequests(driver: driver);
expect(MockWorker.liveWorkers.length, 0);
expect(MockWorker.deadWorkers.length, maxWorkers * (i + 1));
@@ -88,7 +88,7 @@
/// A driver which spawns [numBadWorkers] failing workers and then good
/// ones after that, and which will retry [maxRetries] times.
void createDriver({int maxRetries = 2, int numBadWorkers = 2}) {
- int numSpawned = 0;
+ var numSpawned = 0;
driver = BazelWorkerDriver(
() async => MockWorker(workerLoopFactory: (MockWorker worker) {
var connection = StdAsyncWorkerConnection(
@@ -172,6 +172,7 @@
MockWorkerLoop(this._responseQueue, {AsyncWorkerConnection connection})
: super(connection: connection);
+ @override
Future<WorkResponse> performRequest(WorkRequest request) async {
print('Performing request $request');
return _responseQueue.removeFirst();
@@ -223,17 +224,18 @@
static final deadWorkers = <MockWorker>[];
/// Standard constructor, creates the [_workerLoop].
- MockWorker({WorkerLoop workerLoopFactory(MockWorker mockWorker)}) {
+ MockWorker({WorkerLoop Function(MockWorker) workerLoopFactory}) {
liveWorkers.add(this);
var workerLoop = workerLoopFactory != null
? workerLoopFactory(this)
: MockWorkerLoop(responseQueue,
connection: StdAsyncWorkerConnection(
- inputStream: this._stdinController.stream,
- outputStream: this._stdoutController.sink));
+ inputStream: _stdinController.stream,
+ outputStream: _stdoutController.sink));
_workerLoop = workerLoop..run();
}
+ @override
Future<int> get exitCode => _exitCodeCompleter.future;
final _exitCodeCompleter = Completer<int>();
@@ -254,6 +256,7 @@
IOSink _stdin;
final _stdinController = StreamController<List<int>>();
+ @override
int get pid => throw UnsupportedError('Not needed.');
@override
@@ -270,5 +273,5 @@
return true;
}
- bool _killed = false;
+ final _killed = false;
}
diff --git a/test/message_grouper_test.dart b/test/message_grouper_test.dart
index 7ce26fa..8843b69 100644
--- a/test/message_grouper_test.dart
+++ b/test/message_grouper_test.dart
@@ -24,8 +24,8 @@
});
}
-void runTests(TestStdin stdinFactory(),
- MessageGrouper messageGrouperFactory(Stdin stdinStream)) {
+void runTests(TestStdin Function() stdinFactory,
+ MessageGrouper Function(Stdin) messageGrouperFactory) {
MessageGrouper messageGrouper;
TestStdin stdinStream;
@@ -47,7 +47,7 @@
/// Make a simple message having the given [length]
List<int> makeMessage(int length) {
var result = <int>[];
- for (int i = 0; i < length; i++) {
+ for (var i = 0; i < length; i++) {
result.add(i & 0xff);
}
return result;
@@ -74,14 +74,14 @@
var len = 0x155;
var msg = makeMessage(len);
var encodedLen = [0xd5, 0x02];
- await check([]..addAll(encodedLen)..addAll(msg), [msg]);
+ await check([...encodedLen, ...msg], [msg]);
});
test('Message with 3-byte length', () async {
var len = 0x4103;
var msg = makeMessage(len);
var encodedLen = [0x83, 0x82, 0x01];
- await check([]..addAll(encodedLen)..addAll(msg), [msg]);
+ await check([...encodedLen, ...msg], [msg]);
});
test('Multiple messages', () async {
diff --git a/test/worker_loop_test.dart b/test/worker_loop_test.dart
index fd2fcff..ec7f83b 100644
--- a/test/worker_loop_test.dart
+++ b/test/worker_loop_test.dart
@@ -49,9 +49,9 @@
}
void runTests<T extends TestWorkerConnection>(
- TestStdin stdinFactory(),
- T workerConnectionFactory(Stdin stdin, Stdout stdout),
- TestWorkerLoop workerLoopFactory(T connection)) {
+ TestStdin Function() stdinFactory,
+ T Function(Stdin, Stdout) workerConnectionFactory,
+ TestWorkerLoop Function(T) workerLoopFactory) {
TestStdin stdinStream;
TestStdoutStream stdoutStream;
T connection;
diff --git a/tool/travis.sh b/tool/travis.sh
index a011957..bccd424 100755
--- a/tool/travis.sh
+++ b/tool/travis.sh
@@ -8,7 +8,7 @@
set -e
# Verify that the libraries are error free.
-dartanalyzer --fatal-warnings \
+dartanalyzer --fatal-infos --fatal-warnings \
lib/bazel_worker.dart \
lib/driver.dart \
lib/testing.dart \
@@ -19,6 +19,6 @@
pushd e2e_test
pub get
-dartanalyzer --fatal-warnings test/e2e_test.dart
+dartanalyzer --fatal-infos --fatal-warnings test/e2e_test.dart
pub run test
popd