Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .deepsource.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version = 1

[[analyzers]]
name = "php"
enabled = true

[[analyzers]]
name = "test-coverage"
enabled = true

[[transformers]]
name = "php-cs-fixer"
enabled = true
19 changes: 19 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
lint:
name: "Lint"
runs-on: "ubuntu-latest"
if: ${{ false }}

strategy:
matrix:
Expand Down Expand Up @@ -52,6 +53,7 @@ jobs:
name: "Coding Standard"

runs-on: "ubuntu-latest"
if: ${{ false }}

strategy:
matrix:
Expand Down Expand Up @@ -84,6 +86,7 @@ jobs:
name: "Dependency Analysis"

runs-on: "ubuntu-latest"
if: ${{ false }}

strategy:
matrix:
Expand All @@ -109,6 +112,7 @@ jobs:
tests:
name: "Tests"
runs-on: ${{ matrix.operating-system }}
if: ${{ false }}

strategy:
fail-fast: false
Expand Down Expand Up @@ -149,6 +153,7 @@ jobs:
tests-old-phpunit:
name: "Tests with old PHPUnit"
runs-on: ${{ matrix.operating-system }}
if: ${{ false }}

strategy:
fail-fast: false
Expand Down Expand Up @@ -208,19 +213,28 @@ jobs:
run: "composer install --no-interaction --no-progress --no-suggest"

- name: "Tests"
continue-on-error: true
run: |
php -dpcov.enabled=1 -dpcov.directory=. -dpcov.exclude="~vendor~" vendor/bin/phpunit

- name: "Coveralls"
if: ${{ false }}
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
composer require twinh/php-coveralls --dev && \
vendor/bin/php-coveralls --verbose --coverage_clover=tests/tmp/clover.xml --json_path=tests/tmp/coveralls-upload.json
- name: "DeepSource"
env:
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
run: |
curl https://deepsource.io/cli | sh && \
./bin/deepsource report --analyzer test-coverage --key php --value-file tests/tmp/clover.xml

static-analysis:
name: "PHPStan"
runs-on: ${{ matrix.operating-system }}
if: ${{ false }}

strategy:
fail-fast: false
Expand Down Expand Up @@ -264,6 +278,7 @@ jobs:

static-analysis-with-result-cache:
name: "PHPStan with result cache"
if: ${{ false }}

runs-on: ubuntu-latest

Expand Down Expand Up @@ -311,6 +326,7 @@ jobs:
name: "Result cache E2E tests"

runs-on: ${{ matrix.operating-system }}
if: ${{ false }}

strategy:
matrix:
Expand Down Expand Up @@ -339,6 +355,7 @@ jobs:

compiler-tests:
name: "Compiler Tests"
if: ${{ false }}

runs-on: "ubuntu-latest"

Expand Down Expand Up @@ -369,6 +386,7 @@ jobs:

generate-baseline:
name: "Generate baseline"
if: ${{ false }}

runs-on: "ubuntu-latest"

Expand Down Expand Up @@ -399,6 +417,7 @@ jobs:
e2e-tests:
name: "E2E tests"
runs-on: "ubuntu-latest"
if: ${{ false }}

strategy:
matrix:
Expand Down
1 change: 1 addition & 0 deletions .php_cs.cache

Large diffs are not rendered by default.

204 changes: 103 additions & 101 deletions bin/functionMetadata_original.php
Original file line number Diff line number Diff line change
@@ -1,107 +1,109 @@
<?php declare(strict_types = 1);
<?php

declare(strict_types=1);

return [
'abs' => ['hasSideEffects' => false],
'acos' => ['hasSideEffects' => false],
'acosh' => ['hasSideEffects' => false],
'addcslashes' => ['hasSideEffects' => false],
'addslashes' => ['hasSideEffects' => false],
'array_change_key_case' => ['hasSideEffects' => false],
'array_chunk' => ['hasSideEffects' => false],
'array_column' => ['hasSideEffects' => false],
'array_combine' => ['hasSideEffects' => false],
'array_count_values' => ['hasSideEffects' => false],
'array_diff' => ['hasSideEffects' => false],
'array_diff_assoc' => ['hasSideEffects' => false],
'array_diff_key' => ['hasSideEffects' => false],
'array_diff_uassoc' => ['hasSideEffects' => false],
'array_diff_ukey' => ['hasSideEffects' => false],
'array_fill' => ['hasSideEffects' => false],
'array_fill_keys' => ['hasSideEffects' => false],
'array_flip' => ['hasSideEffects' => false],
'array_intersect' => ['hasSideEffects' => false],
'array_intersect_assoc' => ['hasSideEffects' => false],
'array_intersect_key' => ['hasSideEffects' => false],
'array_intersect_uassoc' => ['hasSideEffects' => false],
'array_intersect_ukey' => ['hasSideEffects' => false],
'array_key_first' => ['hasSideEffects' => false],
'array_key_last' => ['hasSideEffects' => false],
'array_key_exists' => ['hasSideEffects' => false],
'array_keys' => ['hasSideEffects' => false],
'array_merge' => ['hasSideEffects' => false],
'array_merge_recursive' => ['hasSideEffects' => false],
'array_pad' => ['hasSideEffects' => false],
'array_product' => ['hasSideEffects' => false],
'array_rand' => ['hasSideEffects' => false],
'array_replace' => ['hasSideEffects' => false],
'array_replace_recursive' => ['hasSideEffects' => false],
'array_reverse' => ['hasSideEffects' => false],
'array_slice' => ['hasSideEffects' => false],
'array_sum' => ['hasSideEffects' => false],
'array_udiff' => ['hasSideEffects' => false],
'array_udiff_assoc' => ['hasSideEffects' => false],
'array_udiff_uassoc' => ['hasSideEffects' => false],
'array_uintersect' => ['hasSideEffects' => false],
'array_uintersect_assoc' => ['hasSideEffects' => false],
'array_uintersect_uassoc' => ['hasSideEffects' => false],
'array_unique' => ['hasSideEffects' => false],
'array_values' => ['hasSideEffects' => false],
'asin' => ['hasSideEffects' => false],
'asinh' => ['hasSideEffects' => false],
'atan' => ['hasSideEffects' => false],
'atan2' => ['hasSideEffects' => false],
'atanh' => ['hasSideEffects' => false],
'base64_decode' => ['hasSideEffects' => false],
'base64_encode' => ['hasSideEffects' => false],
'base_convert' => ['hasSideEffects' => false],
'basename' => ['hasSideEffects' => false],
'bcadd' => ['hasSideEffects' => false],
'bccomp' => ['hasSideEffects' => false],
'bcdiv' => ['hasSideEffects' => false],
'bcmod' => ['hasSideEffects' => false],
'bcmul' => ['hasSideEffects' => false],
// continue functionMap.php, line 424
'count' => ['hasSideEffects' => false],
'sprintf' => ['hasSideEffects' => false],
'abs' => ['hasSideEffects' => false],
'acos' => ['hasSideEffects' => false],
'acosh' => ['hasSideEffects' => false],
'addcslashes' => ['hasSideEffects' => false],
'addslashes' => ['hasSideEffects' => false],
'array_change_key_case' => ['hasSideEffects' => false],
'array_chunk' => ['hasSideEffects' => false],
'array_column' => ['hasSideEffects' => false],
'array_combine' => ['hasSideEffects' => false],
'array_count_values' => ['hasSideEffects' => false],
'array_diff' => ['hasSideEffects' => false],
'array_diff_assoc' => ['hasSideEffects' => false],
'array_diff_key' => ['hasSideEffects' => false],
'array_diff_uassoc' => ['hasSideEffects' => false],
'array_diff_ukey' => ['hasSideEffects' => false],
'array_fill' => ['hasSideEffects' => false],
'array_fill_keys' => ['hasSideEffects' => false],
'array_flip' => ['hasSideEffects' => false],
'array_intersect' => ['hasSideEffects' => false],
'array_intersect_assoc' => ['hasSideEffects' => false],
'array_intersect_key' => ['hasSideEffects' => false],
'array_intersect_uassoc' => ['hasSideEffects' => false],
'array_intersect_ukey' => ['hasSideEffects' => false],
'array_key_first' => ['hasSideEffects' => false],
'array_key_last' => ['hasSideEffects' => false],
'array_key_exists' => ['hasSideEffects' => false],
'array_keys' => ['hasSideEffects' => false],
'array_merge' => ['hasSideEffects' => false],
'array_merge_recursive' => ['hasSideEffects' => false],
'array_pad' => ['hasSideEffects' => false],
'array_product' => ['hasSideEffects' => false],
'array_rand' => ['hasSideEffects' => false],
'array_replace' => ['hasSideEffects' => false],
'array_replace_recursive' => ['hasSideEffects' => false],
'array_reverse' => ['hasSideEffects' => false],
'array_slice' => ['hasSideEffects' => false],
'array_sum' => ['hasSideEffects' => false],
'array_udiff' => ['hasSideEffects' => false],
'array_udiff_assoc' => ['hasSideEffects' => false],
'array_udiff_uassoc' => ['hasSideEffects' => false],
'array_uintersect' => ['hasSideEffects' => false],
'array_uintersect_assoc' => ['hasSideEffects' => false],
'array_uintersect_uassoc' => ['hasSideEffects' => false],
'array_unique' => ['hasSideEffects' => false],
'array_values' => ['hasSideEffects' => false],
'asin' => ['hasSideEffects' => false],
'asinh' => ['hasSideEffects' => false],
'atan' => ['hasSideEffects' => false],
'atan2' => ['hasSideEffects' => false],
'atanh' => ['hasSideEffects' => false],
'base64_decode' => ['hasSideEffects' => false],
'base64_encode' => ['hasSideEffects' => false],
'base_convert' => ['hasSideEffects' => false],
'basename' => ['hasSideEffects' => false],
'bcadd' => ['hasSideEffects' => false],
'bccomp' => ['hasSideEffects' => false],
'bcdiv' => ['hasSideEffects' => false],
'bcmod' => ['hasSideEffects' => false],
'bcmul' => ['hasSideEffects' => false],
// continue functionMap.php, line 424
'count' => ['hasSideEffects' => false],
'sprintf' => ['hasSideEffects' => false],

// random functions, do not have side effects but are not deterministic
'mt_rand' => ['hasSideEffects' => true],
'rand' => ['hasSideEffects' => true],
'random_bytes' => ['hasSideEffects' => true],
'random_int' => ['hasSideEffects' => true],
// random functions, do not have side effects but are not deterministic
'mt_rand' => ['hasSideEffects' => true],
'rand' => ['hasSideEffects' => true],
'random_bytes' => ['hasSideEffects' => true],
'random_int' => ['hasSideEffects' => true],

// methods
'DateTime::createFromFormat' => ['hasSideEffects' => false],
'DateTime::createFromImmutable' => ['hasSideEffects' => false],
'DateTime::getLastErrors' => ['hasSideEffects' => false],
'DateTime::add' => ['hasSideEffects' => true],
'DateTime::modify' => ['hasSideEffects' => true],
'DateTime::setDate' => ['hasSideEffects' => true],
'DateTime::setISODate' => ['hasSideEffects' => true],
'DateTime::setTime' => ['hasSideEffects' => true],
'DateTime::setTimestamp' => ['hasSideEffects' => true],
'DateTime::setTimezone' => ['hasSideEffects' => true],
'DateTime::sub' => ['hasSideEffects' => true],
'DateTime::diff' => ['hasSideEffects' => false],
'DateTime::format' => ['hasSideEffects' => false],
'DateTime::getOffset' => ['hasSideEffects' => false],
'DateTime::getTimestamp' => ['hasSideEffects' => false],
'DateTime::getTimezone' => ['hasSideEffects' => false],
// methods
'DateTime::createFromFormat' => ['hasSideEffects' => false],
'DateTime::createFromImmutable' => ['hasSideEffects' => false],
'DateTime::getLastErrors' => ['hasSideEffects' => false],
'DateTime::add' => ['hasSideEffects' => true],
'DateTime::modify' => ['hasSideEffects' => true],
'DateTime::setDate' => ['hasSideEffects' => true],
'DateTime::setISODate' => ['hasSideEffects' => true],
'DateTime::setTime' => ['hasSideEffects' => true],
'DateTime::setTimestamp' => ['hasSideEffects' => true],
'DateTime::setTimezone' => ['hasSideEffects' => true],
'DateTime::sub' => ['hasSideEffects' => true],
'DateTime::diff' => ['hasSideEffects' => false],
'DateTime::format' => ['hasSideEffects' => false],
'DateTime::getOffset' => ['hasSideEffects' => false],
'DateTime::getTimestamp' => ['hasSideEffects' => false],
'DateTime::getTimezone' => ['hasSideEffects' => false],

'DateTimeImmutable::createFromFormat' => ['hasSideEffects' => false],
'DateTimeImmutable::createFromMutable' => ['hasSideEffects' => false],
'DateTimeImmutable::getLastErrors' => ['hasSideEffects' => false],
'DateTimeImmutable::add' => ['hasSideEffects' => false],
'DateTimeImmutable::modify' => ['hasSideEffects' => false],
'DateTimeImmutable::setDate' => ['hasSideEffects' => false],
'DateTimeImmutable::setISODate' => ['hasSideEffects' => false],
'DateTimeImmutable::setTime' => ['hasSideEffects' => false],
'DateTimeImmutable::setTimestamp' => ['hasSideEffects' => false],
'DateTimeImmutable::setTimezone' => ['hasSideEffects' => false],
'DateTimeImmutable::sub' => ['hasSideEffects' => false],
'DateTimeImmutable::diff' => ['hasSideEffects' => false],
'DateTimeImmutable::format' => ['hasSideEffects' => false],
'DateTimeImmutable::getOffset' => ['hasSideEffects' => false],
'DateTimeImmutable::getTimestamp' => ['hasSideEffects' => false],
'DateTimeImmutable::getTimezone' => ['hasSideEffects' => false],
'DateTimeImmutable::createFromFormat' => ['hasSideEffects' => false],
'DateTimeImmutable::createFromMutable' => ['hasSideEffects' => false],
'DateTimeImmutable::getLastErrors' => ['hasSideEffects' => false],
'DateTimeImmutable::add' => ['hasSideEffects' => false],
'DateTimeImmutable::modify' => ['hasSideEffects' => false],
'DateTimeImmutable::setDate' => ['hasSideEffects' => false],
'DateTimeImmutable::setISODate' => ['hasSideEffects' => false],
'DateTimeImmutable::setTime' => ['hasSideEffects' => false],
'DateTimeImmutable::setTimestamp' => ['hasSideEffects' => false],
'DateTimeImmutable::setTimezone' => ['hasSideEffects' => false],
'DateTimeImmutable::sub' => ['hasSideEffects' => false],
'DateTimeImmutable::diff' => ['hasSideEffects' => false],
'DateTimeImmutable::format' => ['hasSideEffects' => false],
'DateTimeImmutable::getOffset' => ['hasSideEffects' => false],
'DateTimeImmutable::getTimestamp' => ['hasSideEffects' => false],
'DateTimeImmutable::getTimezone' => ['hasSideEffects' => false],
];
Loading