Make casts from dynamic explicit in generated getters.

Bump to 5.0.0-nullsafety.3

PiperOrigin-RevId: 351670376
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 89f3b61..8e2af95 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 5.0.0-nullsafety.3
+
+* Improve static analysis of generated code.
+* Make implicit casts from dynamic in getters explicit.
+
 ## 5.0.0-nullsafety.2
 
 * Fix issue with generated code which references a class declared in a part
diff --git a/lib/src/builder.dart b/lib/src/builder.dart
index 06d590b..d0a2967 100644
--- a/lib/src/builder.dart
+++ b/lib/src/builder.dart
@@ -1114,10 +1114,16 @@
       refer('#${getter.displayName}'),
     ]);
     final noSuchMethodArgs = [invocation, _dummyValue(getter.returnType)];
-    final returnNoSuchMethod =
+    var superNoSuchMethod =
         refer('super').property('noSuchMethod').call(noSuchMethodArgs);
+    if (!getter.returnType.isVoid && !getter.returnType.isDynamic) {
+      superNoSuchMethod =
+          superNoSuchMethod.asA(_typeReference(getter.returnType));
+    }
 
-    builder.body = returnNoSuchMethod.code;
+    builder
+      ..lambda = true
+      ..body = superNoSuchMethod.code;
   }
 
   /// Build a setter which overrides [setter], widening the single parameter
diff --git a/pubspec.yaml b/pubspec.yaml
index 4d45cd9..3edb762 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: mockito
-version: 5.0.0-nullsafety.2
+version: 5.0.0-nullsafety.3
 
 description: A mock framework inspired by Mockito.
 homepage: https://github.com/dart-lang/mockito
diff --git a/test/builder/auto_mocks_test.dart b/test/builder/auto_mocks_test.dart
index c37a1d9..bfc9953 100644
--- a/test/builder/auto_mocks_test.dart
+++ b/test/builder/auto_mocks_test.dart
@@ -1385,7 +1385,7 @@
       }
       '''),
       _containsAllOf(
-          'int get m => super.noSuchMethod(Invocation.getter(#m), 0);'),
+          'int get m => (super.noSuchMethod(Invocation.getter(#m), 0)'),
     );
   });
 
@@ -1407,7 +1407,7 @@
       class Foo extends FooBase {}
       '''),
       _containsAllOf(
-          'int get m => super.noSuchMethod(Invocation.getter(#m), 0);'),
+          'int get m => (super.noSuchMethod(Invocation.getter(#m), 0)'),
     );
   });
 
@@ -1453,7 +1453,7 @@
       }
       '''),
       _containsAllOf(
-          'int get m => super.noSuchMethod(Invocation.getter(#m), 0);',
+          'int get m => (super.noSuchMethod(Invocation.getter(#m), 0)',
           'set m(int? _m) => super.noSuchMethod(Invocation.setter(#m, [_m]));'),
     );
   });
@@ -1467,7 +1467,7 @@
       class Foo extends FooBase {}
       '''),
       _containsAllOf(
-          'int get m => super.noSuchMethod(Invocation.getter(#m), 0);',
+          'int get m => (super.noSuchMethod(Invocation.getter(#m), 0)',
           'set m(int? _m) => super.noSuchMethod(Invocation.setter(#m, [_m]));'),
     );
   });
@@ -1481,7 +1481,7 @@
       }
       '''),
       _containsAllOf(
-          'int get m => super.noSuchMethod(Invocation.getter(#m), 0);'),
+          'int get m => (super.noSuchMethod(Invocation.getter(#m), 0)'),
     );
   });