@@ -1318,14 +1318,21 @@ class _MockClassInfo {
1318
1318
if (parameter.isRequiredPositional || parameter.isOptionalPositional) {
1319
1319
final superParameterType =
1320
1320
_escapeCovariance (parameter, position: position);
1321
- final matchingParameter = _matchingParameter (parameter,
1322
- superParameterType: superParameterType, forceNullable: true );
1321
+ final matchingParameter = _matchingParameter (
1322
+ parameter,
1323
+ superParameterType: superParameterType,
1324
+ // A parameter in the overridden method may be a wildcard, in which
1325
+ // case we need to rename it, as we use the parameter when we pass
1326
+ // it to `Invocation.method`.
1327
+ defaultName: '_$position ' ,
1328
+ forceNullable: true ,
1329
+ );
1323
1330
if (parameter.isRequiredPositional) {
1324
1331
builder.requiredParameters.add (matchingParameter);
1325
1332
} else {
1326
1333
builder.optionalParameters.add (matchingParameter);
1327
1334
}
1328
- invocationPositionalArgs.add (refer (parameter.displayName ));
1335
+ invocationPositionalArgs.add (refer (matchingParameter.name ));
1329
1336
position++ ;
1330
1337
} else if (parameter.isNamed) {
1331
1338
final superParameterType =
@@ -1712,12 +1719,14 @@ class _MockClassInfo {
1712
1719
{required analyzer.DartType superParameterType,
1713
1720
String ? defaultName,
1714
1721
bool forceNullable = false }) {
1722
+ final parameterHasName = parameter.name.isNotEmpty && parameter.name != '_' ;
1715
1723
assert (
1716
- parameter.name.isNotEmpty || defaultName != null ,
1717
- 'parameter must have a non-empty name, or non-null defaultName must be '
1718
- 'passed, but parameter name is "${parameter .name }" and defaultName is '
1719
- '$defaultName ' );
1720
- final name = parameter.name.isEmpty ? defaultName! : parameter.name;
1724
+ parameterHasName || defaultName != null ,
1725
+ 'parameter must have a non-empty name, or non-null defaultName must be '
1726
+ 'passed, but parameter name is "${parameter .name }" and defaultName is '
1727
+ '$defaultName ' ,
1728
+ );
1729
+ final name = ! parameterHasName ? defaultName! : parameter.name;
1721
1730
return Parameter ((pBuilder) {
1722
1731
pBuilder.name = name;
1723
1732
if (! superParameterType.containsPrivateName) {
@@ -1980,8 +1989,13 @@ class _MockClassInfo {
1980
1989
1981
1990
assert (setter.parameters.length == 1 );
1982
1991
final parameter = setter.parameters.single;
1992
+ // The parameter in the overridden setter may be a wildcard, in which case
1993
+ // we need to rename it, as we use the parameter when we pass it to
1994
+ // `Invocation.setter`.
1995
+ final parameterName =
1996
+ parameter.displayName == '_' ? '_value' : parameter.displayName;
1983
1997
builder.requiredParameters.add (Parameter ((pBuilder) {
1984
- pBuilder.name = parameter.displayName ;
1998
+ pBuilder.name = parameterName ;
1985
1999
if (! parameter.type.containsPrivateName) {
1986
2000
pBuilder.type = _typeReference (parameter.type,
1987
2001
forceNullable: true , overrideVoid: true );
@@ -2012,7 +2026,7 @@ class _MockClassInfo {
2012
2026
final invocation =
2013
2027
referImported ('Invocation' , 'dart:core' ).property ('setter' ).call ([
2014
2028
refer ('#$name ' ),
2015
- refer (parameter.displayName ),
2029
+ refer (parameterName ),
2016
2030
]);
2017
2031
final returnNoSuchMethod = refer ('super' )
2018
2032
.property ('noSuchMethod' )
0 commit comments