Skip to content

Commit

Permalink
Merge branch 'master' into dickermoshe/master
Browse files Browse the repository at this point in the history
  • Loading branch information
srawlins committed Dec 4, 2024
2 parents 8b2f248 + df36812 commit 4b39373
Show file tree
Hide file tree
Showing 5 changed files with 182 additions and 73 deletions.
34 changes: 21 additions & 13 deletions .github/workflows/test-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@ env:
permissions: read-all

jobs:
# Check code formatting with the stable SDK.
# Check code formatting with the dev SDK.
format:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
with:
sdk: 3.5.0
sdk: dev
- id: install
name: Install dependencies
run: dart pub get
Expand All @@ -37,10 +37,12 @@ jobs:
strategy:
fail-fast: false
matrix:
sdk: [3.5.0, dev]
# TODO(srawlins): Re-enable stable Dart when 3.6.0 is available.
#sdk: [3.5.0, dev]
sdk: [dev]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
with:
sdk: ${{ matrix.sdk }}
- id: install
Expand All @@ -59,10 +61,12 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
sdk: [3.5.0, dev]
# TODO(srawlins): Re-enable stable Dart when 3.6.0 is available.
#sdk: [3.5.0, dev]
sdk: [dev]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
with:
sdk: ${{ matrix.sdk }}
- id: install
Expand All @@ -75,7 +79,11 @@ jobs:
run: dart run build_runner build --fail-on-severe
if: always() && steps.install.outcome == 'success'
- name: Run DDC tests
run: dart run build_runner test -- --platform chrome
# We run with `--concurrency=1` because of a bug in the test package,
# I believe: https://github.com/dart-lang/test/issues/2294. We can
# look into removing this flag when we are using a version of the test
# package without this bug.
run: dart run build_runner test -- --platform chrome --concurrency=1
if: always() && steps.install.outcome == 'success'

document:
Expand All @@ -86,8 +94,8 @@ jobs:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
with:
sdk: dev
- id: install
Expand Down
34 changes: 24 additions & 10 deletions lib/src/builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1330,14 +1330,21 @@ class _MockClassInfo {
if (parameter.isRequiredPositional || parameter.isOptionalPositional) {
final superParameterType =
_escapeCovariance(parameter, position: position);
final matchingParameter = _matchingParameter(parameter,
superParameterType: superParameterType, forceNullable: true);
final matchingParameter = _matchingParameter(
parameter,
superParameterType: superParameterType,
// A parameter in the overridden method may be a wildcard, in which
// case we need to rename it, as we use the parameter when we pass
// it to `Invocation.method`.
defaultName: '_$position',
forceNullable: true,
);
if (parameter.isRequiredPositional) {
builder.requiredParameters.add(matchingParameter);
} else {
builder.optionalParameters.add(matchingParameter);
}
invocationPositionalArgs.add(refer(parameter.displayName));
invocationPositionalArgs.add(refer(matchingParameter.name));
position++;
} else if (parameter.isNamed) {
final superParameterType =
Expand Down Expand Up @@ -1724,12 +1731,14 @@ class _MockClassInfo {
{required analyzer.DartType superParameterType,
String? defaultName,
bool forceNullable = false}) {
final parameterHasName = parameter.name.isNotEmpty && parameter.name != '_';
assert(
parameter.name.isNotEmpty || defaultName != null,
'parameter must have a non-empty name, or non-null defaultName must be '
'passed, but parameter name is "${parameter.name}" and defaultName is '
'$defaultName');
final name = parameter.name.isEmpty ? defaultName! : parameter.name;
parameterHasName || defaultName != null,
'parameter must have a non-empty name, or non-null defaultName must be '
'passed, but parameter name is "${parameter.name}" and defaultName is '
'$defaultName',
);
final name = !parameterHasName ? defaultName! : parameter.name;
return Parameter((pBuilder) {
pBuilder.name = name;
if (!superParameterType.containsPrivateName) {
Expand Down Expand Up @@ -1992,8 +2001,13 @@ class _MockClassInfo {

assert(setter.parameters.length == 1);
final parameter = setter.parameters.single;
// The parameter in the overridden setter may be a wildcard, in which case
// we need to rename it, as we use the parameter when we pass it to
// `Invocation.setter`.
final parameterName =
parameter.displayName == '_' ? '_value' : parameter.displayName;
builder.requiredParameters.add(Parameter((pBuilder) {
pBuilder.name = parameter.displayName;
pBuilder.name = parameterName;
if (!parameter.type.containsPrivateName) {
pBuilder.type = _typeReference(parameter.type,
forceNullable: true, overrideVoid: true);
Expand Down Expand Up @@ -2024,7 +2038,7 @@ class _MockClassInfo {
final invocation =
referImported('Invocation', 'dart:core').property('setter').call([
refer('#$name'),
refer(parameter.displayName),
refer(parameterName),
]);
final returnNoSuchMethod = refer('super')
.property('noSuchMethod')
Expand Down
Loading

0 comments on commit 4b39373

Please sign in to comment.