Require Dart 2.19, enable and fix new team lints (dart-lang/http_multi_server#51)

diff --git a/pkgs/http_multi_server/.github/workflows/test-package.yml b/pkgs/http_multi_server/.github/workflows/test-package.yml
index b552d6a..f8d94da 100644
--- a/pkgs/http_multi_server/.github/workflows/test-package.yml
+++ b/pkgs/http_multi_server/.github/workflows/test-package.yml
@@ -47,7 +47,7 @@
       matrix:
         # Add macos-latest and/or windows-latest if relevant for this package.
         os: [ubuntu-latest]
-        sdk: [2.12.0, dev]
+        sdk: [2.19.0, dev]
     steps:
       - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
       - uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
diff --git a/pkgs/http_multi_server/CHANGELOG.md b/pkgs/http_multi_server/CHANGELOG.md
index 3988a6a..70b7abd 100644
--- a/pkgs/http_multi_server/CHANGELOG.md
+++ b/pkgs/http_multi_server/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 3.2.2-dev
+
+* Require Dart 2.19
+
 ## 3.2.1
 
 * Populate the pubspec `repository` field.
diff --git a/pkgs/http_multi_server/analysis_options.yaml b/pkgs/http_multi_server/analysis_options.yaml
index 055ac10..9076448 100644
--- a/pkgs/http_multi_server/analysis_options.yaml
+++ b/pkgs/http_multi_server/analysis_options.yaml
@@ -1,5 +1,32 @@
-include: package:lints/recommended.yaml
+include: package:dart_flutter_team_lints/analysis_options.yaml
 
 analyzer:
   language:
     strict-casts: true
+
+linter:
+  rules:
+  - avoid_bool_literals_in_conditional_expressions
+  - avoid_classes_with_only_static_members
+  - avoid_private_typedef_functions
+  - avoid_redundant_argument_values
+  - avoid_returning_null
+  - avoid_returning_null_for_future
+  - avoid_returning_this
+  - avoid_unused_constructor_parameters
+  - cancel_subscriptions
+  - cascade_invocations
+  - comment_references
+  - join_return_with_assignment
+  - literal_only_boolean_expressions
+  - no_adjacent_strings_in_list
+  - no_runtimeType_toString
+  - package_api_docs
+  - prefer_const_constructors
+  - prefer_const_declarations
+  - prefer_expression_function_bodies
+  - prefer_final_locals
+  - prefer_relative_imports
+  - test_types_in_equals
+  - use_string_buffers
+  - use_super_parameters
diff --git a/pkgs/http_multi_server/example/main.dart b/pkgs/http_multi_server/example/main.dart
index 00f9515..661b52e 100644
--- a/pkgs/http_multi_server/example/main.dart
+++ b/pkgs/http_multi_server/example/main.dart
@@ -5,8 +5,9 @@
 void main() async {
   // Both http://127.0.0.1:8080 and http://[::1]:8080 will be bound to the same
   // server.
-  var server = await HttpMultiServer.loopback(8080);
-  shelf_io.serveRequests(server, (request) {
-    return shelf.Response.ok('Hello, world!');
-  });
+  final server = await HttpMultiServer.loopback(8080);
+  shelf_io.serveRequests(
+    server,
+    (request) => shelf.Response.ok('Hello, world!'),
+  );
 }
diff --git a/pkgs/http_multi_server/lib/http_multi_server.dart b/pkgs/http_multi_server/lib/http_multi_server.dart
index 5f23947..18fba33 100644
--- a/pkgs/http_multi_server/lib/http_multi_server.dart
+++ b/pkgs/http_multi_server/lib/http_multi_server.dart
@@ -106,29 +106,27 @@
   ///
   /// See [HttpServer.bind].
   static Future<HttpServer> loopback(int port,
-      {int backlog = 0, bool v6Only = false, bool shared = false}) {
-    return _loopback(
-        port,
-        (address, port) => HttpServer.bind(address, port,
-            backlog: backlog, v6Only: v6Only, shared: shared));
-  }
+          {int backlog = 0, bool v6Only = false, bool shared = false}) =>
+      _loopback(
+          port,
+          (address, port) => HttpServer.bind(address, port,
+              backlog: backlog, v6Only: v6Only, shared: shared));
 
   /// Like [loopback], but supports HTTPS requests.
   ///
   /// See [HttpServer.bindSecure].
   static Future<HttpServer> loopbackSecure(int port, SecurityContext context,
-      {int backlog = 0,
-      bool v6Only = false,
-      bool requestClientCertificate = false,
-      bool shared = false}) {
-    return _loopback(
-        port,
-        (address, port) => HttpServer.bindSecure(address, port, context,
-            backlog: backlog,
-            v6Only: v6Only,
-            shared: shared,
-            requestClientCertificate: requestClientCertificate));
-  }
+          {int backlog = 0,
+          bool v6Only = false,
+          bool requestClientCertificate = false,
+          bool shared = false}) =>
+      _loopback(
+          port,
+          (address, port) => HttpServer.bindSecure(address, port, context,
+              backlog: backlog,
+              v6Only: v6Only,
+              shared: shared,
+              requestClientCertificate: requestClientCertificate));
 
   /// Bind an [HttpServer] with handling for special addresses 'localhost' and
   /// 'any'.
@@ -206,13 +204,13 @@
       return await bind(InternetAddress.loopbackIPv6, port);
     }
 
-    var v4Server = await bind(InternetAddress.loopbackIPv4, port);
+    final v4Server = await bind(InternetAddress.loopbackIPv4, port);
     if (!await supportsIPv6) return v4Server;
 
     try {
       // Reuse the IPv4 server's port so that if [port] is 0, both servers use
       // the same ephemeral port.
-      var v6Server = await bind(InternetAddress.loopbackIPv6, v4Server.port);
+      final v6Server = await bind(InternetAddress.loopbackIPv6, v4Server.port);
       return HttpMultiServer([v4Server, v6Server]);
     } on SocketException catch (error) {
       // If there is already a server listening we'll lose the reference on a
@@ -238,13 +236,14 @@
   /// current connections handled by all the servers.
   @override
   HttpConnectionsInfo connectionsInfo() {
-    var info = HttpConnectionsInfo();
+    final info = HttpConnectionsInfo();
     for (var server in _servers) {
-      var subInfo = server.connectionsInfo();
-      info.total += subInfo.total;
-      info.active += subInfo.active;
-      info.idle += subInfo.idle;
-      info.closing += subInfo.closing;
+      final subInfo = server.connectionsInfo();
+      info
+        ..total += subInfo.total
+        ..active += subInfo.active
+        ..idle += subInfo.idle
+        ..closing += subInfo.closing;
     }
     return info;
   }
diff --git a/pkgs/http_multi_server/lib/src/utils.dart b/pkgs/http_multi_server/lib/src/utils.dart
index e9fb3b4..87520fb 100644
--- a/pkgs/http_multi_server/lib/src/utils.dart
+++ b/pkgs/http_multi_server/lib/src/utils.dart
@@ -7,7 +7,7 @@
 /// Returns whether this computer supports binding to IPv6 addresses.
 final Future<bool> supportsIPv6 = () async {
   try {
-    var socket = await ServerSocket.bind(InternetAddress.loopbackIPv6, 0);
+    final socket = await ServerSocket.bind(InternetAddress.loopbackIPv6, 0);
     await socket.close();
     return true;
   } on SocketException catch (_) {
@@ -18,7 +18,7 @@
 /// Returns whether this computer supports binding to IPv4 addresses.
 final Future<bool> supportsIPv4 = () async {
   try {
-    var socket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
+    final socket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
     await socket.close();
     return true;
   } on SocketException catch (_) {
diff --git a/pkgs/http_multi_server/pubspec.yaml b/pkgs/http_multi_server/pubspec.yaml
index 3d855c0..9220548 100644
--- a/pkgs/http_multi_server/pubspec.yaml
+++ b/pkgs/http_multi_server/pubspec.yaml
@@ -1,19 +1,17 @@
 name: http_multi_server
-version: 3.2.1
+version: 3.2.2-dev
 description: >-
   A dart:io HttpServer wrapper that handles requests from multiple servers.
 repository: https://github.com/dart-lang/http_multi_server
 
 environment:
-  sdk: '>=2.12.0 <3.0.0'
+  sdk: '>=2.19.0 <3.0.0'
 
 dependencies:
   async: ^2.5.0
 
 dev_dependencies:
+  dart_flutter_team_lints: ^1.0.0
   http: ^0.13.0
-  lints: ^1.0.0
-  test: ^1.16.0
-
-dependency_overrides:
+  shelf: ^1.4.0
   test: ^1.16.0
diff --git a/pkgs/http_multi_server/test/http_multi_server_test.dart b/pkgs/http_multi_server/test/http_multi_server_test.dart
index 0591267..62f5b77 100644
--- a/pkgs/http_multi_server/test/http_multi_server_test.dart
+++ b/pkgs/http_multi_server/test/http_multi_server_test.dart
@@ -19,13 +19,11 @@
     late HttpServer subServer2;
     late HttpServer subServer3;
 
-    setUp(() {
-      return Future.wait([
-        HttpServer.bind('localhost', 0).then((server) => subServer1 = server),
-        HttpServer.bind('localhost', 0).then((server) => subServer2 = server),
-        HttpServer.bind('localhost', 0).then((server) => subServer3 = server)
-      ]).then((servers) => multiServer = HttpMultiServer(servers));
-    });
+    setUp(() => Future.wait([
+          HttpServer.bind('localhost', 0).then((server) => subServer1 = server),
+          HttpServer.bind('localhost', 0).then((server) => subServer2 = server),
+          HttpServer.bind('localhost', 0).then((server) => subServer3 = server)
+        ]).then((servers) => multiServer = HttpMultiServer(servers)));
 
     tearDown(() => multiServer.close());
 
@@ -41,12 +39,12 @@
     });
 
     test('serverHeader= sets the value for all servers', () {
-      multiServer.serverHeader = 'http_multi_server test';
-
-      multiServer.listen((request) {
-        request.response.write('got request');
-        request.response.close();
-      });
+      multiServer
+        ..serverHeader = 'http_multi_server test'
+        ..listen((request) {
+          request.response.write('got request');
+          request.response.close();
+        });
 
       expect(
           _get(subServer1).then((response) {
@@ -71,12 +69,12 @@
     });
 
     test('autoCompress= sets the value for all servers', () {
-      multiServer.autoCompress = true;
-
-      multiServer.listen((request) {
-        request.response.write('got request');
-        request.response.close();
-      });
+      multiServer
+        ..autoCompress = true
+        ..listen((request) {
+          request.response.write('got request');
+          request.response.close();
+        });
 
       expect(
           _get(subServer1).then((response) {
@@ -130,8 +128,8 @@
 
     test('connectionsInfo sums the values for all servers', () {
       var pendingRequests = 0;
-      var awaitingResponseCompleter = Completer();
-      var sendResponseCompleter = Completer();
+      final awaitingResponseCompleter = Completer();
+      final sendResponseCompleter = Completer();
       multiServer.listen((request) {
         sendResponseCompleter.future.then((_) {
           request.response.write('got request');
@@ -148,7 +146,7 @@
       expect(_get(subServer2), completes);
 
       return awaitingResponseCompleter.future.then((_) {
-        var info = multiServer.connectionsInfo();
+        final info = multiServer.connectionsInfo();
         expect(info.total, equals(2));
         expect(info.active, equals(2));
         expect(info.idle, equals(0));
@@ -162,9 +160,7 @@
   group('HttpMultiServer.loopback', () {
     late HttpServer server;
 
-    setUp(() {
-      return HttpMultiServer.loopback(0).then((s) => server = s);
-    });
+    setUp(() => HttpMultiServer.loopback(0).then((s) => server = s));
 
     tearDown(() => server.close());
 
@@ -269,12 +265,12 @@
       });
 
       if (await supportsIPv4) {
-        expect(client.read(Uri.https('127.0.0.1:${server.port}', '')),
+        expect(client.read(Uri.https('127.0.0.1:${server.port}')),
             completion(equals('got request')));
       }
 
       if (await supportsIPv6) {
-        expect(client.read(Uri.https('[::1]:${server.port}', '')),
+        expect(client.read(Uri.https('[::1]:${server.port}')),
             completion(equals('got request')));
       }
     });
@@ -287,12 +283,12 @@
       });
 
       if (await supportsIPv4) {
-        expect(client.read(Uri.https('127.0.0.1:${server.port}', '')),
+        expect(client.read(Uri.https('127.0.0.1:${server.port}')),
             completion(equals('got request')));
       }
 
       if (await supportsIPv6) {
-        expect(client.read(Uri.https('[::1]:${server.port}', '')),
+        expect(client.read(Uri.https('[::1]:${server.port}')),
             completion(equals('got request')));
       }
     });
@@ -306,11 +302,11 @@
         request.response.close();
       });
 
-      expect(client.read(Uri.https('127.0.0.1:${server.port}', '')),
+      expect(client.read(Uri.https('127.0.0.1:${server.port}')),
           completion(equals('got request')));
 
       if (await supportsIPv6) {
-        expect(client.read(Uri.https('[::1]:${server.port}', '')),
+        expect(client.read(Uri.https('[::1]:${server.port}')),
             throwsA(isA<SocketException>()));
       }
     });