Skip to content

Don't report already assigned errors when setting or unsetting an offset on array access objects set as class properties. #24355

Don't report already assigned errors when setting or unsetting an offset on array access objects set as class properties.

Don't report already assigned errors when setting or unsetting an offset on array access objects set as class properties. #24355

Workflow file for this run

# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
name: "Static Analysis"
on:
pull_request:
paths-ignore:
- 'compiler/**'
- 'apigen/**'
push:
branches:
- "2.1.x"
paths-ignore:
- 'compiler/**'
- 'apigen/**'
concurrency:
group: sa-${{ github.head_ref || github.run_id }} # will be canceled on subsequent pushes in pull requests but not branches
cancel-in-progress: true
jobs:
static-analysis:
name: "PHPStan"
runs-on: ${{ matrix.operating-system }}
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
php-version:
- "7.4"
- "8.0"
- "8.1"
- "8.2"
- "8.3"
- "8.4"
- "8.5"
operating-system: [ubuntu-latest, windows-latest]
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "${{ matrix.php-version }}"
ini-file: development
extensions: mbstring
- name: "Downgrade PHPUnit"
if: matrix.php-version == '7.4' || matrix.php-version == '8.0' || matrix.php-version == '8.1'
shell: bash
run: "composer require --dev phpunit/phpunit:^9.6 sebastian/diff:^4.0 --update-with-dependencies --ignore-platform-reqs"
- uses: "ramsey/composer-install@v3"
- uses: ./.github/actions/downgrade-code
with:
php-version: "${{ matrix.php-version }}"
- name: "PHPStan"
run: "make phpstan"
- name: "Generate baseline"
if: failure() && (matrix.php-version == '7.4' || matrix.php-version == '8.0' || matrix.php-version == '8.1')
run: "php -d memory_limit=448M bin/phpstan analyse --generate-baseline baseline-php-${{ matrix.php-version }}.neon"
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: baseline-${{ matrix.php-version }}
path: baseline-php-${{ matrix.php-version }}.neon
static-analysis-with-result-cache:
name: "PHPStan with result cache"
runs-on: "ubuntu-latest"
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
php-version:
- "8.2"
- "8.3"
- "8.4"
- "8.5"
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "${{ matrix.php-version }}"
ini-file: development
extensions: mbstring
- uses: "ramsey/composer-install@v3"
- name: "Cache Result cache"
uses: actions/cache@v4
with:
path: ./tmp
key: "result-cache-v14-${{ matrix.php-version }}-${{ github.run_id }}"
restore-keys: |
result-cache-v14-${{ matrix.php-version }}-
- name: "PHPStan with result cache"
run: |
make phpstan-result-cache
bin/phpstan clear-result-cache -c build/phpstan.neon
make phpstan-result-cache
echo -e "\n\n" >> src/TrinaryLogic.php
make phpstan-result-cache
make phpstan-result-cache
generate-baseline:
name: "Generate baseline"
runs-on: "ubuntu-latest"
timeout-minutes: 60
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "8.2"
ini-file: development
- uses: "ramsey/composer-install@v3"
- name: "Generate baseline"
run: |
cp phpstan-baseline.neon phpstan-baseline-orig.neon && \
make phpstan-generate-baseline && \
diff phpstan-baseline.neon phpstan-baseline-orig.neon
generate-baseline-php:
name: "Generate PHP baseline"
runs-on: "ubuntu-latest"
timeout-minutes: 60
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "8.2"
ini-file: development
- uses: "ramsey/composer-install@v3"
- name: "Generate baseline"
run: |
> phpstan-baseline.neon && \
make phpstan-generate-baseline-php && \
make phpstan-result-cache