Skip to content

Commit

Permalink
Merge pull request #1017 from doctrine/3.4.x-merge-up-into-3.5.x_ERxP…
Browse files Browse the repository at this point in the history
…2qhI

Merge release 3.4.5 into 3.5.x
  • Loading branch information
greg0ire authored Oct 14, 2024
2 parents 6b266d6 + 6c8fef9 commit 24e4974
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 11 deletions.
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
labels:
- "CI"
2 changes: 1 addition & 1 deletion .github/workflows/coding-standards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ on:
jobs:
coding-standards:
name: "Coding Standards"
uses: "doctrine/.github/.github/workflows/coding-standards.yml@1.4.0"
uses: "doctrine/.github/.github/workflows/coding-standards.yml@5.1.0"
with:
php-version: "7.4"
6 changes: 4 additions & 2 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ env:
jobs:
phpunit:
name: "PHPUnit"
uses: "doctrine/.github/.github/workflows/continuous-integration.yml@1.1.1"
uses: "doctrine/.github/.github/workflows/continuous-integration.yml@5.1.0"
with:
php-versions: '["7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"]'
php-versions: '["7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2", "8.3", "8.4"]'
secrets:
CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}"
2 changes: 1 addition & 1 deletion .github/workflows/release-on-milestone-closed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
release:
name: "Git tag, release & create merge-up PR"
uses: "doctrine/.github/.github/workflows/release-on-milestone-closed.yml@1.4.1"
uses: "doctrine/.github/.github/workflows/release-on-milestone-closed.yml@5.1.0"
secrets:
GIT_AUTHOR_EMAIL: ${{ secrets.GIT_AUTHOR_EMAIL }}
GIT_AUTHOR_NAME: ${{ secrets.GIT_AUTHOR_NAME }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ on:
jobs:
static-analysis:
name: "Static Analysis"
uses: "doctrine/.github/.github/workflows/static-analysis.yml@1.4.0"
uses: "doctrine/.github/.github/workflows/static-analysis.yml@5.1.0"
with:
php-version: "8.1"
1 change: 0 additions & 1 deletion src/Proxy/ProxyGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -1284,7 +1284,6 @@ function (ReflectionType $intersectedType) use ($method, $parameter) {
if (
$type->allowsNull()
&& ! in_array($name, ['mixed', 'null'], true)
&& ($parameter === null || ! $parameter->isDefaultValueAvailable() || $parameter->getDefaultValue() !== null)
) {
$name = '?' . $name;
}
Expand Down
6 changes: 6 additions & 0 deletions tests/Common/Proxy/Php8UnionTypes.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@ class Php8UnionTypes

public function setValue(stdClass|array $value) : bool|float
{
return true;
}

public function setNullableValue(stdClass|array|null $value) : bool|float|null
{
return true;
}

public function setNullableValueDefaultNull(stdClass|array|null $value = null) : bool|float|null
{
return true;
}
}
15 changes: 10 additions & 5 deletions tests/Common/Proxy/ProxyGeneratorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ public function testClassWithScalarTypeHintsOnProxiedMethods()
self::assertEquals(1, substr_count($classCode, 'function combinationOfTypeHintsAndNormal(\stdClass $a, \Countable $b, $c, int $d)'));
self::assertEquals(1, substr_count($classCode, 'function typeHintsWithVariadic(int ...$foo)'));
self::assertEquals(1, substr_count($classCode, 'function withDefaultValue(int $foo = 123)'));
self::assertEquals(1, substr_count($classCode, 'function withDefaultValueNull(int $foo = NULL)'));
self::assertEquals(1, substr_count($classCode, 'function withDefaultValueNull(?int $foo = NULL)'));
}

public function testClassWithReturnTypesOnProxiedMethods()
Expand Down Expand Up @@ -220,8 +220,8 @@ public function testClassWithNullableTypeHintsOnProxiedMethods()
self::assertEquals(1, substr_count($classCode, 'function nullableTypeHintObject(?\stdClass $param)'));
self::assertEquals(1, substr_count($classCode, 'function nullableTypeHintSelf(?\\' . $className . ' $param)'));
self::assertEquals(1, substr_count($classCode, 'function nullableTypeHintWithDefault(?int $param = 123)'));
self::assertEquals(1, substr_count($classCode, 'function nullableTypeHintWithDefaultNull(int $param = NULL)'));
self::assertEquals(1, substr_count($classCode, 'function notNullableTypeHintWithDefaultNull(int $param = NULL)'));
self::assertEquals(1, substr_count($classCode, 'function nullableTypeHintWithDefaultNull(?int $param = NULL)'));
self::assertEquals(1, substr_count($classCode, 'function notNullableTypeHintWithDefaultNull(?int $param = NULL)'));
}

public function testClassWithNullableReturnTypesOnProxiedMethods()
Expand Down Expand Up @@ -259,7 +259,7 @@ public function testClassWithNullableOptionalNonLastParameterOnProxiedMethods()
}

self::assertStringContainsString(
'public function midSignatureNullableParameter(\stdClass $param = NULL, $secondParam)',
'public function midSignatureNullableParameter(?\stdClass $param = NULL, $secondParam)',
file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxyNullableNonOptionalHintClass.php')
);

Expand Down Expand Up @@ -287,7 +287,7 @@ public function testClassWithPhp71NullableOptionalNonLastParameterOnProxiedMetho
}

self::assertStringContainsString(
'public function midSignatureNullableParameter(string $param = NULL, $secondParam)',
'public function midSignatureNullableParameter(?string $param = NULL, $secondParam)',
file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxyPhp71NullableDefaultedNonOptionalHintClass.php'),
'Signature allows nullable type, although explicit "?" marker isn\'t used in the proxy'
);
Expand Down Expand Up @@ -460,6 +460,11 @@ public function testPhp8UnionTypes()
'setNullableValue(\stdClass|array|null $value): float|bool|null',
file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxyPhp8UnionTypes.php')
);

self::assertStringContainsString(
'setNullableValueDefaultNull(\stdClass|array|null $value = NULL): float|bool|null',
file_get_contents(__DIR__ . '/generated/__CG__DoctrineTestsCommonProxyPhp8UnionTypes.php')
);
}

/**
Expand Down

0 comments on commit 24e4974

Please sign in to comment.