Files
pl_mail/phpstan-baseline.neon
T
Paul LütznerandClaude Opus 5.5 fd5dc915a6 fix(sync): one mail the database refuses no longer stops a folder
A fresh install with one GMX mailbox stopped importing two folders, each
on a batch it fetched again on every sync:

  invalid byte sequence for encoding "UTF8": 0xe4 0x72 0x75   ($2)
  invalid byte sequence for encoding "UTF8": 0x80             ($30)

$2 of a MessagePart INSERT is its filename: "Erklärung.pdf" in raw
latin-1. The IMAP path stored webklex's name as it came, where
GmailMessageBuilder already decodes it. $30 of a Message INSERT is
body_html: a part labelled UTF-8 carrying a windows-1252 "€". webklex
converts nothing when the label already names the target, UTF-8 and
us-ascii both, and Utf8AwareMessageDecoder only corrected the opposite
lie.

  MessageSyncer            decodes the attachment name before storing
                           it, and writes a refused batch again one
                           message per transaction, so only the refused
                           one is held back by holdForRetry()
  Utf8AwareMessageDecoder  puts whatever the library returns past
                           ensureUtf8()
  CharsetHelper            ensureUtf8() repairs byte by byte and drops
                           NUL

Each stopped a folder because the batch was refused at its flush, not
while building, and holdForRetry() had only ever seen build failures.
The mark stayed below the batch, and the next sync fetched the same
fifty.

ensureUtf8() read a whole invalid string as cp1252, so a UTF-8 body
with one stray "€" had every umlaut turned into "ü". Now only the
invalid bytes are read that way, at about 130ms for a 6 MB body. NUL is
valid UTF-8 that Postgres refuses in text, which made "unconditionally
storable" untrue.

The uid cast in storeMessages() retires a baseline entry: webklex
declares getUid() only in a docblock that PHPStan cannot read as an int.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 23:21:13 +02:00

678 lines
28 KiB
Plaintext

parameters:
ignoreErrors:
-
message: '#^Call to an undefined method Webklex\\PHPIMAP\\Connection\\Protocols\\ProtocolInterface\:\:nextLine\(\)\.$#'
identifier: method.notFound
count: 1
path: src/Command/Imap/ImapIdleCommand.php
-
message: '#^Strict comparison using \=\=\= between true and false will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 2
path: src/Command/Imap/ImapIdleCommand.php
-
message: '#^Strict comparison using \=\=\= between false and true will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 1
path: src/Command/Imap/ImapSuperviseCommand.php
-
message: '#^Parameter \#2 \$options of method Webklex\\PHPIMAP\\Folder\:\:appendMessage\(\) expects array\|null, string given\.$#'
identifier: argument.type
count: 1
path: src/Command/Imap/ImapTestCommand.php
-
message: '#^Parameter \#3 \$internal_date of method Webklex\\PHPIMAP\\Folder\:\:appendMessage\(\) expects Carbon\\Carbon\|string\|null, DateTimeImmutable given\.$#'
identifier: argument.type
count: 1
path: src/Command/Imap/ImapTestCommand.php
-
message: '#^Strict comparison using \=\=\= between false and true will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 1
path: src/Command/Test/SeedTestEmailCommand.php
-
message: '#^Strict comparison using \=\=\= between true and true will always evaluate to true\.$#'
identifier: identical.alwaysTrue
count: 1
path: src/Command/Test/SeedTestEmailCommand.php
-
message: '#^PHPDoc tag @param references unknown parameter\: \$assign$#'
identifier: parameter.notFound
count: 1
path: src/Controller/Admin/IntegrationProviderController.php
-
message: '#^Parameter \#1 \$token of method League\\OAuth2\\Client\\Provider\\AbstractProvider\:\:getResourceOwner\(\) expects League\\OAuth2\\Client\\Token\\AccessToken, League\\OAuth2\\Client\\Token\\AccessTokenInterface given\.$#'
identifier: argument.type
count: 1
path: src/Controller/Auth/OAuthController.php
-
message: '#^Property App\\Entity\\Label\\Label\:\:\$usr \(App\\Entity\\User\\User\|null\) does not accept Symfony\\Component\\Security\\Core\\User\\UserInterface\|null\.$#'
identifier: assign.propertyType
count: 1
path: src/Controller/Mail/LabelController.php
-
message: '#^Property App\\Controller\\Mail\\MailController\:\:\$mailboxRepository is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Controller/Mail/MailController.php
-
message: '#^Instantiating DateTimeImmutable with in 1 day produces an error\: The timezone could not be found in the database$#'
identifier: new.dateTimeImmutable
count: 1
path: src/Controller/Mail/ThreadStatusController.php
-
message: '#^Attribute class Symfony\\Component\\HttpKernel\\Attribute\\MapEntity does not exist\.$#'
identifier: attribute.notFound
count: 2
path: src/Controller/Onboarding/OnboardingController.php
-
message: '#^Parameter \#2 \$user of method App\\Service\\Mail\\AccountCreator\:\:create\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
identifier: argument.type
count: 1
path: src/Controller/Settings/AccountController.php
-
message: '#^Property App\\Controller\\Settings\\AccountController\:\:\$aliasSeeder is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Controller/Settings/AccountController.php
-
message: '#^Property App\\Controller\\Settings\\AccountController\:\:\$graphSubscriptionManager is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Controller/Settings/AccountController.php
-
message: '#^Property App\\Controller\\Settings\\AccountController\:\:\$logger is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Controller/Settings/AccountController.php
-
message: '#^Parameter \#1 \$user of method App\\Repository\\Mail\\MessageRepository\:\:countMatchingForUser\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
identifier: argument.type
count: 1
path: src/Controller/Settings/MailRuleController.php
-
message: '#^Property App\\Controller\\Settings\\MailRuleController\:\:\$executor is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Controller/Settings/MailRuleController.php
-
message: '#^Property App\\Entity\\Rule\\MailRule\:\:\$usr \(App\\Entity\\User\\User\|null\) does not accept Symfony\\Component\\Security\\Core\\User\\UserInterface\|null\.$#'
identifier: assign.propertyType
count: 1
path: src/Controller/Settings/MailRuleController.php
-
message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface\:\:getFlashBag\(\)\.$#'
identifier: method.notFound
count: 1
path: src/Controller/Settings/SettingsController.php
-
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$locale\.$#'
identifier: property.notFound
count: 1
path: src/Controller/Settings/SettingsController.php
-
message: '#^Parameter \#1 \$user of method App\\Service\\User\\ProfileSectionViewData\:\:build\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
identifier: argument.type
count: 1
path: src/Controller/Settings/SettingsController.php
-
message: '#^Parameter \#1 \$user of method App\\Service\\User\\TwoFactor\\SecuritySectionViewData\:\:build\(\) expects App\\Entity\\User\\User, Symfony\\Component\\Security\\Core\\User\\UserInterface\|null given\.$#'
identifier: argument.type
count: 1
path: src/Controller/Settings/SettingsController.php
-
message: '#^Property App\\Controller\\Settings\\SettingsController\:\:\$pushSubscriptionRegistry is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Controller/Settings/SettingsController.php
-
message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface\:\:getFlashBag\(\)\.$#'
identifier: method.notFound
count: 2
path: src/Controller/Settings/TwoFactorController.php
-
message: '#^Call to an undefined method Symfony\\Contracts\\Translation\\TranslatorInterface\:\:setLocale\(\)\.$#'
identifier: method.notFound
count: 1
path: src/Controller/Setup/InstallController.php
-
message: '#^Match arm comparison between \$this\(App\\Domain\\Enum\\Integration\\Provider\)&App\\Domain\\Enum\\Integration\\Provider\:\:Dropbox and App\\Domain\\Enum\\Integration\\Provider\:\:Dropbox is always true\.$#'
identifier: match.alwaysTrue
count: 1
path: src/Domain/Enum/Integration/Provider.php
-
message: '#^Property App\\Entity\\Calendar\\Calendar\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/Calendar.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$calendar type mapping mismatch\: property can contain App\\Entity\\Calendar\\Calendar\|null but database expects App\\Entity\\Calendar\\Calendar\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/CalendarEvent.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$endsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Calendar/CalendarEvent.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$startsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Calendar/CalendarEvent.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEvent\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/CalendarEvent.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$calendar type mapping mismatch\: property can contain App\\Entity\\Calendar\\Calendar\|null but database expects App\\Entity\\Calendar\\Calendar\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/CalendarEventOccurrence.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$endsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Calendar/CalendarEventOccurrence.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$event type mapping mismatch\: property can contain App\\Entity\\Calendar\\CalendarEvent\|null but database expects App\\Entity\\Calendar\\CalendarEvent\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/CalendarEventOccurrence.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$recurrenceId type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Calendar/CalendarEventOccurrence.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$startsAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Calendar/CalendarEventOccurrence.php
-
message: '#^Property App\\Entity\\Calendar\\CalendarEventOccurrence\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/CalendarEventOccurrence.php
-
message: '#^Property App\\Entity\\Calendar\\EventSourceLink\:\:\$event type mapping mismatch\: property can contain App\\Entity\\Calendar\\CalendarEvent\|null but database expects App\\Entity\\Calendar\\CalendarEvent\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/EventSourceLink.php
-
message: '#^Property App\\Entity\\Calendar\\EventSourceLink\:\:\$message type mapping mismatch\: property can contain App\\Entity\\Mail\\Message\|null but database expects App\\Entity\\Mail\\Message\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/EventSourceLink.php
-
message: '#^Property App\\Entity\\Calendar\\EventSuppression\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Calendar/EventSuppression.php
-
message: '#^Property App\\Entity\\Label\\Label\:\:\$name type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Label/Label.php
-
message: '#^Property App\\Entity\\Label\\Label\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Label/Label.php
-
message: '#^Property App\\Entity\\Label\\LabelBinding\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Label/LabelBinding.php
-
message: '#^Property App\\Entity\\Label\\LabelBinding\:\:\$label type mapping mismatch\: property can contain App\\Entity\\Label\\Label\|null but database expects App\\Entity\\Label\\Label\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Label/LabelBinding.php
-
message: '#^Property App\\Entity\\Mail\\Account\:\:\$authType type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Account.php
-
message: '#^Property App\\Entity\\Mail\\Account\:\:\$isActive type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Account.php
-
message: '#^Property App\\Entity\\Mail\\Account\:\:\$username type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Account.php
-
message: '#^Property App\\Entity\\Mail\\Account\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Mail/Account.php
-
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$email type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Contact.php
-
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$firstSeenAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Contact.php
-
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$lastSeenAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Contact.php
-
message: '#^Property App\\Entity\\Mail\\Contact\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Mail/Contact.php
-
message: '#^Property App\\Entity\\Mail\\EmailAlias\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Mail/EmailAlias.php
-
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Mail/Mailbox.php
-
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$fullPath type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Mailbox.php
-
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$isSyncEnabled type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Mailbox.php
-
message: '#^Property App\\Entity\\Mail\\Mailbox\:\:\$name type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Mailbox.php
-
message: '#^Property App\\Entity\\Mail\\Message\:\:\$hasAttachments type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/Message.php
-
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$contentType type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/MessagePart.php
-
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$disposition type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/MessagePart.php
-
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$isInline type mapping mismatch\: property can contain bool\|null but database expects bool\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/MessagePart.php
-
message: '#^Property App\\Entity\\Mail\\MessagePart\:\:\$message type mapping mismatch\: property can contain App\\Entity\\Mail\\Message\|null but database expects App\\Entity\\Mail\\Message\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Mail/MessagePart.php
-
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$account type mapping mismatch\: property can contain App\\Entity\\Mail\\Account\|null but database expects App\\Entity\\Mail\\Account\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Mail/MessageThread.php
-
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$messageCount type mapping mismatch\: property can contain int\|null but database expects int\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/MessageThread.php
-
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$normalizedSubject type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/MessageThread.php
-
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$threadingMethod type mapping mismatch\: property can contain App\\Domain\\Enum\\Mail\\ThreadingMethod\|null but database expects App\\Domain\\Enum\\Mail\\ThreadingMethod\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/MessageThread.php
-
message: '#^Property App\\Entity\\Mail\\MessageThread\:\:\$unreadCount type mapping mismatch\: property can contain int\|null but database expects int\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Mail/MessageThread.php
-
message: '#^Property App\\Entity\\Monitoring\\ProcessHeartbeat\:\:\$lastBeatAt type mapping mismatch\: property can contain DateTimeImmutable\|null but database expects DateTimeImmutable\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Monitoring/ProcessHeartbeat.php
-
message: '#^Property App\\Entity\\Rule\\MailRule\:\:\$name type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/Rule/MailRule.php
-
message: '#^Property App\\Entity\\Rule\\MailRule\:\:\$usr type mapping mismatch\: property can contain App\\Entity\\User\\User\|null but database expects App\\Entity\\User\\User\.$#'
identifier: doctrine.associationType
count: 1
path: src/Entity/Rule/MailRule.php
-
message: '#^Property App\\Entity\\User\\User\:\:\$email type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/User/User.php
-
message: '#^Property App\\Entity\\User\\User\:\:\$nameFirst type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/User/User.php
-
message: '#^Property App\\Entity\\User\\User\:\:\$nameLast type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/User/User.php
-
message: '#^Property App\\Entity\\User\\User\:\:\$password type mapping mismatch\: property can contain string\|null but database expects string\.$#'
identifier: doctrine.columnType
count: 1
path: src/Entity/User/User.php
-
message: '#^Strict comparison using \=\=\= between true and 0\|1 will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 1
path: src/Jmap/Controller/JmapEventSourceController.php
-
message: '#^Method App\\Jmap\\Mail\\EmailPatchApplier\:\:currentMailboxIds\(\) should return array\<string, bool\> but returns array\<int, true\>\.$#'
identifier: return.type
count: 1
path: src/Jmap/Mail/EmailPatchApplier.php
-
message: '#^Property App\\Jmap\\Mail\\EmailPatchApplier\:\:\$labelRepository is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Jmap/Mail/EmailPatchApplier.php
-
message: '#^Method App\\Jmap\\Mapper\\EmailMapper\:\:mailboxIds\(\) never returns array\<string, bool\> so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: src/Jmap/Mapper/EmailMapper.php
-
message: '#^Method App\\Jmap\\Mapper\\EmailMapper\:\:mailboxIds\(\) should return array\<string, bool\>\|stdClass but returns array\<int, bool\>\.$#'
identifier: return.type
count: 1
path: src/Jmap/Mapper/EmailMapper.php
-
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: src/Jmap/Method/Core/PushSubscriptionSetMethod.php
-
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: src/Jmap/Method/Mail/EmailSetMethod.php
-
message: '#^Property App\\Jmap\\Method\\Mail\\EmailSetMethod\:\:\$mailboxRepository is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Jmap/Method/Mail/EmailSetMethod.php
-
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: src/Jmap/Method/Mail/IdentitySetMethod.php
-
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: src/Jmap/Method/Mail/MailboxSetMethod.php
-
message: '#^Method App\\Jmap\\Push\\PushDispatcher\:\:groupByUser\(\) should return array\<int, array\<string, array\<string, string\>\>\> but returns array\<int, array\<int, array\<string, string\>\>\>\.$#'
identifier: return.type
count: 1
path: src/Jmap/Push/PushDispatcher.php
-
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 3
path: src/Jmap/State/StateManager.php
-
message: '#^Method App\\Kernel\:\:getAllowedEnvs\(\) is unused\.$#'
identifier: method.unused
count: 1
path: src/Kernel.php
-
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$id\.$#'
identifier: property.notFound
count: 1
path: src/Repository/Calendar/CalendarEventOccurrenceRepository.php
-
message: '#^PHPDoc tag @return with type iterable\<App\\Entity\\Mail\\Account\> is not subtype of native type array\.$#'
identifier: return.phpDocType
count: 2
path: src/Repository/Mail/AccountRepository.php
-
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$id\.$#'
identifier: property.notFound
count: 1
path: src/Repository/Mail/MessageThreadRepository.php
-
message: '#^Method App\\Security\\ApiTokenAuthenticator\:\:onAuthenticationFailure\(\) never returns null so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: src/Security/ApiTokenAuthenticator.php
-
message: '#^Method App\\Security\\ApiTokenAuthenticator\:\:supports\(\) never returns null so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: src/Security/ApiTokenAuthenticator.php
-
message: '#^Strict comparison using \=\=\= between null and App\\Entity\\Mail\\Account will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 1
path: src/Service/Imap/MessageSendService.php
-
message: '#^Expression on left side of \?\? is not nullable\.$#'
identifier: nullCoalesce.expr
count: 2
path: src/Service/Imap/MessageSyncer.php
-
message: '#^Property App\\Service\\Label\\LabelChangePropagator\:\:\$mailboxRepository is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: src/Service/Label/LabelChangePropagator.php
-
message: '#^Using nullsafe property access "\?\-\>gmailLabelId" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: src/Service/Label/LabelStructurePropagator.php
-
message: '#^Method App\\Service\\Mail\\GraphApiClient\:\:batchWrite\(\) never assigns null to &\$resultIds so it can be removed from the by\-ref type\.$#'
identifier: parameterByRef.unusedType
count: 1
path: src/Service/Mail/GraphApiClient.php
-
message: '#^Unreachable statement \- code above always terminates\.$#'
identifier: deadCode.unreachable
count: 1
path: src/Service/OAuth/OAuthProviderFactory.php
-
message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Session\\SessionInterface\:\:getFlashBag\(\)\.$#'
identifier: method.notFound
count: 1
path: src/Service/Onboarding/Step/SecurityStepHandler.php
-
message: '#^Access to an undefined property Symfony\\Component\\Security\\Core\\User\\UserInterface\:\:\$id\.$#'
identifier: property.notFound
count: 2
path: src/Service/Rule/FilterDescriber.php
-
message: '#^Call to new App\\Infrastructure\\Encryption\\Encryptor\(\) on a separate line has no effect\.$#'
identifier: new.resultUnused
count: 1
path: tests/Infrastructure/Encryption/EncryptorTest.php
-
message: '#^Call to an undefined method App\\Repository\\Mail\\MessageRepository\:\:method\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Service/Gmail/GmailApiSyncerBackfillTest.php
-
message: '#^Using nullsafe property access on non\-nullable type App\\Entity\\Mail\\MessageThread\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: tests/Service/Imap/MessageThreaderTest.php
-
message: '#^Offset ''body'' does not exist on array\{method\: string, url\: string, options\: array\<string, mixed\>\}\.$#'
identifier: offsetAccess.notFound
count: 2
path: tests/Service/Integration/ImmichDriverTest.php
-
message: '#^Offset ''body'' does not exist on array\{method\: ''SEARCH'', url\: string, options\: array\<string, mixed\>\}\.$#'
identifier: offsetAccess.notFound
count: 1
path: tests/Service/Integration/NextcloudDriverTest.php
-
message: '#^Offset ''body'' does not exist on array\{method\: string, url\: string, options\: array\<string, mixed\>\}\.$#'
identifier: offsetAccess.notFound
count: 1
path: tests/Service/Integration/NextcloudDriverTest.php
-
message: '#^Method App\\Tests\\Service\\Mail\\ThreadSnoozeServiceTest\:\:transport\(\) should return Symfony\\Component\\Messenger\\Transport\\InMemory\\InMemoryTransport but returns Symfony\\Component\\Messenger\\Transport\\TransportInterface\.$#'
identifier: return.type
count: 1
path: tests/Service/Mail/ThreadSnoozeServiceTest.php
-
message: '#^Property App\\Tests\\Service\\Mail\\ThreadSnoozeServiceTest\:\:\$labelRepository is never read, only written\.$#'
identifier: property.onlyWritten
count: 1
path: tests/Service/Mail/ThreadSnoozeServiceTest.php
-
message: '#^Access to an undefined property League\\OAuth2\\Client\\Provider\\AbstractProvider\:\:\$tenant\.$#'
identifier: property.notFound
count: 1
path: tests/Service/OAuth/OAuthProviderFactoryTest.php
-
message: '#^Call to function method_exists\(\) with ''Symfony\\\\Component\\\\Dotenv\\\\Dotenv'' and ''bootEnv'' will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: tests/bootstrap.php