Rollback of "Use `FunctionTypedElement.type` while generating method overrides"
PiperOrigin-RevId: 545713598
diff --git a/lib/src/builder.dart b/lib/src/builder.dart
index 8298149..10afbf0 100644
--- a/lib/src/builder.dart
+++ b/lib/src/builder.dart
@@ -1315,8 +1315,8 @@
void _buildOverridingMethod(MethodBuilder builder, MethodElement method) {
var name = method.displayName;
if (method.isOperator) name = 'operator$name';
- final returnType = method.type.returnType;
- _withTypeParameters(method.type.typeFormals, (typeParamsWithBounds, _) {
+ final returnType = method.returnType;
+ _withTypeParameters(method.typeParameters, (typeParamsWithBounds, _) {
builder
..name = name
..annotations.add(referImported('override', 'dart:core'))
@@ -1333,7 +1333,7 @@
final invocationNamedArgs = <Expression, Expression>{};
var position = 0;
- for (final parameter in method.type.parameters) {
+ for (final parameter in method.parameters) {
if (parameter.isRequiredPositional || parameter.isOptionalPositional) {
final superParameterType =
_escapeCovariance(parameter, position: position);
@@ -1370,7 +1370,7 @@
final fallbackGenerator = fallbackGenerators[method.name];
final parametersContainPrivateName =
- method.type.parameters.any((p) => p.type.containsPrivateName);
+ method.parameters.any((p) => p.type.containsPrivateName);
final throwsUnsupported = fallbackGenerator == null &&
(returnType.containsPrivateName || parametersContainPrivateName);
@@ -1443,7 +1443,7 @@
ExecutableElement method, ExecutableElement function) {
final positionalArguments = <Expression>[];
final namedArguments = <String, Expression>{};
- for (final parameter in method.type.parameters) {
+ for (final parameter in method.parameters) {
if (parameter.isPositional) {
positionalArguments.add(refer(parameter.name));
} else if (parameter.isNamed) {
@@ -1453,7 +1453,7 @@
final functionReference =
referImported(function.name, _typeImport(function));
return functionReference.call(positionalArguments, namedArguments, [
- for (final t in method.type.typeFormals)
+ for (final t in method.typeParameters)
_typeParameterReference(t, withBound: false)
]);
}
diff --git a/test/builder/custom_mocks_test.dart b/test/builder/custom_mocks_test.dart
index d0de4b8..4a673e9 100644
--- a/test/builder/custom_mocks_test.dart
+++ b/test/builder/custom_mocks_test.dart
@@ -1843,29 +1843,6 @@
expect(mocksContent, contains('Iterable<X1> m1<X1>(X1 Function(X)? f)'));
expect(mocksContent, contains('Iterable<X1?> m2<X1>(X1 Function(X)? f)'));
});
- test('We preserve nested generic bounded type arguments', () async {
- final mocksContent = await buildWithNonNullable({
- ...annotationsAsset,
- 'foo|lib/foo.dart': dedent(r'''
- class Foo<A, B> {}
- abstract class Bar<T> {
- X m1<X extends Foo<Foo<X, T>, X>>(X Function(T)? f);
- }
- abstract class FooBar<X> extends Bar<X> {}
- '''),
- 'foo|test/foo_test.dart': '''
- import 'package:foo/foo.dart';
- import 'package:mockito/annotations.dart';
-
- @GenerateMocks([FooBar])
- void main() {}
- '''
- });
- expect(
- mocksContent,
- contains(
- 'X1 m1<X1 extends _i2.Foo<_i2.Foo<X1, X>, X1>>(X1 Function(X)? f)'));
- });
}
TypeMatcher<List<int>> _containsAllOf(a, [b]) => decodedMatches(