-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathphpstan.neon
More file actions
40 lines (38 loc) · 2.21 KB
/
Copy pathphpstan.neon
File metadata and controls
40 lines (38 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Stackiq — Conduction PHPStan config.
#
# The shared base is the single source of truth. Everything here is either the
# app's own tracked debt or an ignore naming a symbol that exists in no other
# fleet app. Anything you are tempted to add that another app would also need
# belongs in the base, not here.
includes:
- vendor/conduction/hydra-gates/quality-config/phpstan-base.neon
# Per-app tracked lint debt (auto-generated via `phpstan --generate-baseline`).
- phpstan-baseline.neon
parameters:
# App-specific only. The base already sets level, paths, bootstrapFiles,
# excludePaths, scanDirectories and every fleet-wide ignore.
scanFiles:
# decidesk decision-event contract (DecisionRequestedEvent +
# DecisionConcludedEvent). decidesk is a sibling Nextcloud app, not a
# Composer dependency, so it is genuinely absent from the CI analysis
# path. The stub mirrors the real signatures in decidesk/lib/Event/ and
# supplies real type information rather than silencing the diagnostic —
# that is what also resolves the six `Call to method X() on an unknown
# class` errors that a bare ignore pattern cannot fix. Analysis-only;
# never loaded at runtime or by PHPUnit.
- tests/analysis-stubs/decidesk-events.stub.php
ignoreErrors:
# OrganizationSyncService's `if ($contactObject !== null)` at the top of
# the contact-person loop. saveObject() returns a non-nullable
# ObjectEntityInterface, so the guard is provably true — the code a few
# lines ABOVE it already dereferences $contactObject unconditionally,
# which is the giveaway.
#
# Left in place rather than removed because the block it wraps is 243
# lines: deleting the `if` is a pure re-indentation of a quarter of the
# method, which is a large, review-hostile diff for zero behaviour
# change. Worth doing when that method is next touched for real.
-
message: '#Strict comparison using !== between OCA\\OpenRegister\\Contract\\ObjectEntityInterface and null will always evaluate to true#'
identifier: notIdentical.alwaysTrue
path: lib/Service/OrganizationSyncService.php