[pigeon] Require analyzer 4.4.0, stop using deprecated APIs. (#2422)

diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md
index ed7bc41..0bc6ef8 100644
--- a/packages/pigeon/CHANGELOG.md
+++ b/packages/pigeon/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 3.2.7
+
+* Requires `analyzer 4.4.0`, and replaces use of deprecated APIs.
+
 ## 3.2.6
 
 * [java] Fixes returning int values from FlutterApi methods that fit in 32 bits.
diff --git a/packages/pigeon/lib/generator_tools.dart b/packages/pigeon/lib/generator_tools.dart
index 2200c08..0eb3b13 100644
--- a/packages/pigeon/lib/generator_tools.dart
+++ b/packages/pigeon/lib/generator_tools.dart
@@ -9,7 +9,7 @@
 import 'ast.dart';
 
 /// The current version of pigeon. This must match the version in pubspec.yaml.
-const String pigeonVersion = '3.2.6';
+const String pigeonVersion = '3.2.7';
 
 /// Read all the content from [stdin] to a String.
 String readStdin() {
diff --git a/packages/pigeon/lib/pigeon_lib.dart b/packages/pigeon/lib/pigeon_lib.dart
index a05dffe..697e42f 100644
--- a/packages/pigeon/lib/pigeon_lib.dart
+++ b/packages/pigeon/lib/pigeon_lib.dart
@@ -847,7 +847,7 @@
     _storeCurrentApi();
     _storeCurrentClass();
 
-    if (node.isAbstract) {
+    if (node.abstractKeyword != null) {
       if (_hasMetadata(node.metadata, 'HostApi')) {
         final dart_ast.Annotation hostApi = node.metadata.firstWhere(
             (dart_ast.Annotation element) => element.name.name == 'HostApi');
@@ -868,20 +868,20 @@
           }
         }
         _currentApi = Api(
-          name: node.name.name,
+          name: node.name2.lexeme,
           location: ApiLocation.host,
           methods: <Method>[],
           dartHostTestHandler: dartHostTestHandler,
         );
       } else if (_hasMetadata(node.metadata, 'FlutterApi')) {
         _currentApi = Api(
-          name: node.name.name,
+          name: node.name2.lexeme,
           location: ApiLocation.flutter,
           methods: <Method>[],
         );
       }
     } else {
-      _currentClass = Class(name: node.name.name, fields: <NamedType>[]);
+      _currentClass = Class(name: node.name2.lexeme, fields: <NamedType>[]);
     }
 
     node.visitChildren(this);
@@ -901,7 +901,7 @@
               baseName: argTypeBaseName,
               isNullable: isNullable,
               typeArguments: argTypeArguments),
-          name: parameter.identifier?.name ?? '',
+          name: parameter.name?.lexeme ?? '',
           offset: parameter.offset);
     } else {
       return NamedType(
@@ -964,7 +964,7 @@
       final dart_ast.SimpleIdentifier returnTypeIdentifier =
           getFirstChildOfType<dart_ast.SimpleIdentifier>(returnType)!;
       _currentApi!.methods.add(Method(
-          name: node.name.name,
+          name: node.name2.lexeme,
           returnType: TypeDeclaration(
               baseName: returnTypeIdentifier.name,
               typeArguments: typeAnnotationsToTypeArguments(
@@ -978,7 +978,7 @@
     } else if (_currentClass != null) {
       _errors.add(Error(
           message:
-              'Methods aren\'t supported in Pigeon data classes ("${node.name.name}").',
+              'Methods aren\'t supported in Pigeon data classes ("${node.name2.lexeme}").',
           lineNumber: _calculateLineNumber(source, node.offset)));
     }
     node.visitChildren(this);
@@ -988,9 +988,9 @@
   @override
   Object? visitEnumDeclaration(dart_ast.EnumDeclaration node) {
     _enums.add(Enum(
-        name: node.name.name,
+        name: node.name2.lexeme,
         members: node.constants
-            .map((dart_ast.EnumConstantDeclaration e) => e.name.name)
+            .map((dart_ast.EnumConstantDeclaration e) => e.name2.lexeme)
             .toList()));
     node.visitChildren(this);
     return null;
@@ -1036,7 +1036,7 @@
                   baseName: type.name.name,
                   isNullable: type.question != null,
                   typeArguments: typeAnnotationsToTypeArguments(typeArguments)),
-              name: node.fields.variables[0].name.name,
+              name: node.fields.variables[0].name2.lexeme,
               offset: node.offset));
         }
       } else {
diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml
index 2341d0a..540ea8a 100644
--- a/packages/pigeon/pubspec.yaml
+++ b/packages/pigeon/pubspec.yaml
@@ -2,14 +2,14 @@
 description: Code generator tool to make communication between Flutter and the host platform type-safe and easier.
 repository: https://github.com/flutter/packages/tree/main/packages/pigeon
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Apigeon
-version: 3.2.6 # This must match the version in lib/generator_tools.dart
+version: 3.2.7 # This must match the version in lib/generator_tools.dart
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
   flutter: ">=3.0.0"
 
 dependencies:
-  analyzer: ">=2.4.0 <5.0.0"
+  analyzer: ">=4.4.0 <5.0.0"
   args: ^2.0.0
   collection: ^1.15.0
   meta: ^1.7.0