@@ -1318,14 +1318,21 @@ class _MockClassInfo {
13181318 if (parameter.isRequiredPositional || parameter.isOptionalPositional) {
13191319 final superParameterType =
13201320 _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+ );
13231330 if (parameter.isRequiredPositional) {
13241331 builder.requiredParameters.add (matchingParameter);
13251332 } else {
13261333 builder.optionalParameters.add (matchingParameter);
13271334 }
1328- invocationPositionalArgs.add (refer (parameter.displayName ));
1335+ invocationPositionalArgs.add (refer (matchingParameter.name ));
13291336 position++ ;
13301337 } else if (parameter.isNamed) {
13311338 final superParameterType =
@@ -1712,12 +1719,14 @@ class _MockClassInfo {
17121719 {required analyzer.DartType superParameterType,
17131720 String ? defaultName,
17141721 bool forceNullable = false }) {
1722+ final parameterHasName = parameter.name.isNotEmpty && parameter.name != '_' ;
17151723 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;
17211730 return Parameter ((pBuilder) {
17221731 pBuilder.name = name;
17231732 if (! superParameterType.containsPrivateName) {
@@ -1980,8 +1989,13 @@ class _MockClassInfo {
19801989
19811990 assert (setter.parameters.length == 1 );
19821991 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;
19831997 builder.requiredParameters.add (Parameter ((pBuilder) {
1984- pBuilder.name = parameter.displayName ;
1998+ pBuilder.name = parameterName ;
19851999 if (! parameter.type.containsPrivateName) {
19862000 pBuilder.type = _typeReference (parameter.type,
19872001 forceNullable: true , overrideVoid: true );
@@ -2012,7 +2026,7 @@ class _MockClassInfo {
20122026 final invocation =
20132027 referImported ('Invocation' , 'dart:core' ).property ('setter' ).call ([
20142028 refer ('#$name ' ),
2015- refer (parameter.displayName ),
2029+ refer (parameterName ),
20162030 ]);
20172031 final returnNoSuchMethod = refer ('super' )
20182032 .property ('noSuchMethod' )
0 commit comments