diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4ff13f1c3..499110aca 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -50,4 +50,4 @@ jobs: run: docker compose -f docker-compose.yml run test_runner vendor/bin/phpunit --no-progress --testsuite Structure - name: run cs fixer - run: docker run --rm -v .:/opt/project -w /opt/project php:8.3-cli sh -c 'curl -sS https://getcomposer.org/installer | php && php composer.phar run cs' + run: docker run --rm -e PHP_CS_FIXER_IGNORE_ENV=1 -v .:/opt/project -w /opt/project php:8.4-cli sh -c 'curl -sS https://getcomposer.org/installer | php && php composer.phar run cs' diff --git a/Core/Core.php b/Core/Core.php index 82adc9244..2ed51d827 100755 --- a/Core/Core.php +++ b/Core/Core.php @@ -445,7 +445,6 @@ function property_exists($object_or_class, string $property): bool {} * @link https://secure.php.net/manual/en/function.trait-exists.php * @since 5.4 */ -#[Pure(true)] function trait_exists(string $trait, bool $autoload = true): bool {} /** @@ -460,7 +459,6 @@ function trait_exists(string $trait, bool $autoload = true): bool {} * @return bool true if class_name is a defined class, * false otherwise. */ -#[Pure(true)] function class_exists(string $class, bool $autoload = true): bool {} /** @@ -476,7 +474,6 @@ function class_exists(string $class, bool $autoload = true): bool {} * interface_name has been defined, false otherwise. * @since 5.0.2 */ -#[Pure(true)] function interface_exists(string $interface, bool $autoload = true): bool {} /** @@ -508,7 +505,6 @@ function function_exists(string $function): bool {} * false otherwise. * @since 8.1 */ -#[Pure(true)] function enum_exists(string $enum, bool $autoload = true): bool {} /** @@ -609,7 +605,7 @@ function get_class_vars(string $class): array {} * for the specified object in scope. If a property have * not been assigned a value, it will be returned with a null value. */ -#[Pure(true)] +#[Pure] function get_object_vars(object $object): array {} /** @@ -817,7 +813,7 @@ function create_function(string $args, string $code): false|string {} * by this function, the return value will be the string * Unknown. */ -#[Pure(true)] +#[Pure] function get_resource_type($resource): string {} /** diff --git a/meta/attributes/Pure.php b/meta/attributes/Pure.php index c4e95b6c8..26cb1a009 100644 --- a/meta/attributes/Pure.php +++ b/meta/attributes/Pure.php @@ -7,6 +7,7 @@ /** * The attribute marks the function that has no impact on the program state or passed parameters used after the function execution. * This means that a function call that resolves to such a function can be safely removed if the execution result is not used in code afterwards. + * Functions that take a callable which is called should not have this attribute applied. * * @since 8.0 */ diff --git a/standard/standard_8.php b/standard/standard_8.php index a0fee6fd5..c868f2b47 100644 --- a/standard/standard_8.php +++ b/standard/standard_8.php @@ -244,7 +244,6 @@ function ob_end_clean(): bool {} * @link https://php.net/manual/en/function.ob-get-flush.php * @return string|false the output buffer or false if no buffering is active. */ -#[Pure(true)] function ob_get_flush(): string|false {} /** @@ -253,7 +252,6 @@ function ob_get_flush(): string|false {} * @return string|false the contents of the output buffer and end output buffering. * If output buffering isn't active then false is returned. */ -#[Pure(true)] function ob_get_clean(): string|false {} /** diff --git a/standard/standard_9.php b/standard/standard_9.php index 10307c1ec..a2a4112f9 100644 --- a/standard/standard_9.php +++ b/standard/standard_9.php @@ -445,7 +445,6 @@ function array_intersect_uassoc( * array1 that are present in all the arguments. * @meta */ -#[Pure] function array_uintersect_uassoc( array $array, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,