Skip to content

Commit

Permalink
Rollback of "Use FunctionTypedElement.type while generating method …
Browse files Browse the repository at this point in the history
…overrides"

PiperOrigin-RevId: 545713598
  • Loading branch information
Googler authored and copybara-github committed Jul 5, 2023
1 parent 60e619a commit c13496c
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 29 deletions.
12 changes: 6 additions & 6 deletions lib/src/builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1315,8 +1315,8 @@ class _MockClassInfo {
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'))
Expand All @@ -1333,7 +1333,7 @@ class _MockClassInfo {
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);
Expand Down Expand Up @@ -1370,7 +1370,7 @@ class _MockClassInfo {

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);

Expand Down Expand Up @@ -1443,7 +1443,7 @@ class _MockClassInfo {
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) {
Expand All @@ -1453,7 +1453,7 @@ class _MockClassInfo {
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)
]);
}
Expand Down
23 changes: 0 additions & 23 deletions test/builder/custom_mocks_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1843,29 +1843,6 @@ void main() {
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(
Expand Down

0 comments on commit c13496c

Please sign in to comment.