[shelf_router_generator] Allow latest pkg:analyzer (#495)

diff --git a/pkgs/shelf_router_generator/CHANGELOG.md b/pkgs/shelf_router_generator/CHANGELOG.md
index 6588464..7438947 100644
--- a/pkgs/shelf_router_generator/CHANGELOG.md
+++ b/pkgs/shelf_router_generator/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.1.4-wip
+
+* Require `analyzer: '>=8.1.1 <10.0.0'
+
 ## 1.1.3
 
 * Require `analyzer: ^8.1.1`
diff --git a/pkgs/shelf_router_generator/lib/src/shelf_router_generator.dart b/pkgs/shelf_router_generator/lib/src/shelf_router_generator.dart
index b3c148d..85cbc5c 100644
--- a/pkgs/shelf_router_generator/lib/src/shelf_router_generator.dart
+++ b/pkgs/shelf_router_generator/lib/src/shelf_router_generator.dart
@@ -17,8 +17,8 @@
 
 import 'dart:async' show Future;
 
-import 'package:analyzer/dart/element/element2.dart'
-    show ClassElement2, ElementKind, ExecutableElement2;
+import 'package:analyzer/dart/element/element.dart'
+    show ClassElement, ElementKind, ExecutableElement;
 import 'package:analyzer/dart/element/type.dart' show ParameterizedType;
 import 'package:build/build.dart' show BuildStep, log;
 import 'package:code_builder/code_builder.dart' as code;
@@ -48,37 +48,36 @@
 /// A representation of a handler that was annotated with [shelf_router.Route].
 class _Handler {
   final String verb, route;
-  final ExecutableElement2 element;
+  final ExecutableElement element;
 
   _Handler(this.verb, this.route, this.element);
 }
 
 /// Find members of a class annotated with [shelf_router.Route].
-List<ExecutableElement2> getAnnotatedElementsOrderBySourceOffset(
-  ClassElement2 cls,
+List<ExecutableElement> getAnnotatedElementsOrderBySourceOffset(
+  ClassElement cls,
 ) =>
-    <ExecutableElement2>[
-      ...cls.methods2.where(_routeType.hasAnnotationOfExact),
-      ...cls.getters2.where(_routeType.hasAnnotationOfExact),
+    <ExecutableElement>[
+      ...cls.methods.where(_routeType.hasAnnotationOfExact),
+      ...cls.getters.where(_routeType.hasAnnotationOfExact),
     ]..sort(
-      (a, b) => (a.firstFragment.nameOffset2!).compareTo(
-        b.firstFragment.nameOffset2!,
-      ),
+      (a, b) =>
+          (a.firstFragment.nameOffset!).compareTo(b.firstFragment.nameOffset!),
     );
 
 /// Generate a `_$<className>Router(<className> service)` method that returns a
 /// [shelf_router.Router] configured based on annotated handlers.
 code.Method _buildRouterMethod({
-  required ClassElement2 classElement,
+  required ClassElement classElement,
   required List<_Handler> handlers,
 }) => code.Method(
   (b) => b
-    ..name = '_\$${classElement.name3}Router'
+    ..name = '_\$${classElement.name}Router'
     ..requiredParameters.add(
       code.Parameter(
         (b) => b
           ..name = 'service'
-          ..type = code.refer(classElement.name3!),
+          ..type = code.refer(classElement.name!),
       ),
     )
     ..returns = code.refer('Router')
@@ -110,16 +109,16 @@
 }) => switch (handler.verb) {
   r'$mount' => router.property('mount').call([
     code.literalString(handler.route, raw: true),
-    service.property(handler.element.name3!).property('call'),
+    service.property(handler.element.name!).property('call'),
   ]).statement,
   r'$all' => router.property('all').call([
     code.literalString(handler.route, raw: true),
-    service.property(handler.element.name3!),
+    service.property(handler.element.name!),
   ]).statement,
   _ => router.property('add').call([
     code.literalString(handler.verb.toUpperCase()),
     code.literalString(handler.route, raw: true),
-    service.property(handler.element.name3!),
+    service.property(handler.element.name!),
   ]).statement,
 };
 
@@ -128,13 +127,13 @@
   Future<String?> generate(g.LibraryReader library, BuildStep buildStep) async {
     // Create a map from ClassElement to list of annotated elements sorted by
     // offset in source code, this is not type checked yet.
-    final classes = <ClassElement2, List<_Handler>>{};
+    final classes = <ClassElement, List<_Handler>>{};
     for (final cls in library.classes) {
       final elements = getAnnotatedElementsOrderBySourceOffset(cls);
       if (elements.isEmpty) {
         continue;
       }
-      log.info('found shelf_router.Route annotations in ${cls.name3}');
+      log.info('found shelf_router.Route annotations in ${cls.name}');
 
       classes[cls] = elements
           .map(
@@ -258,12 +257,12 @@
     }
     for (var i = 0; i < params.length; i++) {
       final p = h.element.formalParameters[i + 1];
-      if (p.name3 != params[i]) {
+      if (p.name != params[i]) {
         throw g.InvalidGenerationSourceError(
           'The shelf_router.Route annotation can only be used on shelf '
           'request handlers accept a shelf.Request parameter and/or a '
           'shelf.Request parameter and all string parameters in the route, '
-          'the "${p.name3}" parameter should be named "${params[i]}"',
+          'the "${p.name}" parameter should be named "${params[i]}"',
           element: p,
         );
       }
@@ -272,7 +271,7 @@
           'The shelf_router.Route annotation can only be used on shelf '
           'request handlers accept a shelf.Request parameter and/or a '
           'shelf.Request parameter and all string parameters in the route, '
-          'the "${p.name3}" parameter is not of type string',
+          'the "${p.name}" parameter is not of type string',
           element: p,
         );
       }
diff --git a/pkgs/shelf_router_generator/pubspec.yaml b/pkgs/shelf_router_generator/pubspec.yaml
index b0de190..d293f18 100644
--- a/pkgs/shelf_router_generator/pubspec.yaml
+++ b/pkgs/shelf_router_generator/pubspec.yaml
@@ -1,5 +1,5 @@
 name: shelf_router_generator
-version: 1.1.3
+version: 1.1.4-wip
 description: >
   A package:build-compatible builder for generating request routers for the
   shelf web-framework based on source annotations.
@@ -14,7 +14,7 @@
   sdk: ^3.9.0
 
 dependencies:
-  analyzer: ^8.1.1
+  analyzer: '>=8.1.1 <10.0.0'
   build: ^4.0.0
   build_config: ^1.2.0
   code_builder: ^4.2.0
@@ -24,7 +24,7 @@
   source_gen: ^4.0.1
 
 dev_dependencies:
-  build_runner: ^2.7.2
+  build_runner: ^2.8.0
   build_verify: ^3.0.0
   dart_flutter_team_lints: ^3.0.0
   http: ^1.0.0