Files
portal/app/phpstan-baseline.neon
T
Дмитрий f2ac3f4c7f fix,телеграм: подсказка обещала цену вдвое ниже настоящей + образец файла для базы номеров
Приёмка владельца на боевом, два замечания из трёх (третье — про рекламный
кошелёк и заморозку — отложено, кусок большой).

1. Подсказка «?» у поля медиа обещала «600 ₽ за тысячу с картинкой, 680 ₽ с
   видео». Клиент платит 1008 и 1142,40 ₽. Числа были вбиты в текст руками и
   протухли в ту минуту, когда миграция client_tg_cena_po_media поменяла тариф.

   Лечение в корень, а не подстановкой верных чисел: цену называет тот, кто её
   считает. Ручка оценки отдаёт ceny_za_tysyachu по каждому виду медиа
   (себестоимость × наценка), подсказка собирается из них функцией
   podskazkaProMedia. Пока сервер не ответил — текст без единой цифры: подставить
   «примерные» числа значило бы вернуть ровно эту беду.

   Прайс держим отдельно от охвата: охват на ошибке гасим (устаревший хуже
   никакого), а цены от настроек аудитории не зависят — иначе подсказка мигала бы
   на каждой опечатке в поле.

2. Замечание дословно: «нету скачать файл с примером как надо заполнить для нас
   файл». Кнопка «Скачать образец» рядом с полем загрузки — подпись клиент читает
   уже ПОСЛЕ того, как файл отклонили. Пять строк, написания разные (с плюсом, с
   восьмёркой, со скобками), номера синтетические 7999.

   Заголовка-строки в образце намеренно нет: разборщик нормализует первый столбец
   КАЖДОЙ строки, и слово «Телефон» попало бы в «не похоже на номер» — наш
   собственный образец показал бы клиенту ошибку.

Проверено вырезанием, а не только зелёным:
- вернул в подсказку вбитые 600/680 — покраснели 4 датчика, включая тот, что
  прямо запрещает эти два числа;
- вставил в образец строку-заголовок — покраснели 3.

Полный прогон поймал две мои же поломки, обе настоящие:
- значок mdi-file-download-outline на новой кнопке ОТСУТСТВОВАЛ в карте Lucide —
  на экране стал бы вопросом в кружке. Поймал сторож значков, у которого вчера
  опустошили список поблажек. Добавлен (Download — точного «файла со стрелкой» в
  Lucide нет);
- датчик подсказок ждал PODSKAZKI.media строкой, а её больше нет.

Замеры: экраны 245 файлов / 1870 тестов / 0 падений; телеграм-модуль 327 / 0;
статанализ 0; формат чисто; типы 6 — все в чужих файлах, столько же было до;
сборка 3,80 с. Счётчик в phpstan-baseline сдвинут 13→15 (новые тесты на Pest),
diff проверен глазами: изменилась ровно эта строка.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 01:59:01 +03:00

2265 lines
66 KiB
Plaintext

parameters:
ignoreErrors:
-
message: '#^Strict comparison using \!\=\= between '''' and '''' will always evaluate to false\.$#'
identifier: notIdentical.alwaysFalse
count: 1
path: app/Console/Commands/AuditRebuildChain.php
-
message: '#^Strict comparison using \=\=\= between '''' and ''PARTITION BY tenant…'' will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 1
path: app/Console/Commands/AuditRebuildChain.php
-
message: '#^Parameter \#1 \$array \(non\-empty\-list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Console/Commands/PhoneRangesImportCommand.php
-
message: '#^Strict comparison using \=\=\= between int and null will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 1
path: app/Http/Controllers/Api/AdminPaymentGatewayController.php
-
message: '#^Access to an undefined property App\\Models\\Tenant\:\:\$tariff_name\.$#'
identifier: property.notFound
count: 1
path: app/Http/Controllers/Api/AdminTenantsController.php
-
message: '#^Access to an undefined property App\\Models\\Tenant\:\:\$tariff_price_monthly\.$#'
identifier: property.notFound
count: 1
path: app/Http/Controllers/Api/AdminTenantsController.php
-
message: '#^Parameter \#1 \$callback of method Illuminate\\Database\\Eloquent\\Collection\<int,App\\Models\\Tenant\>\:\:map\(\) contains unresolvable type\.$#'
identifier: argument.unresolvableType
count: 1
path: app/Http/Controllers/Api/AdminTenantsController.php
-
message: '#^Parameter \#1 \$column of method Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\:\:orWhere\(\) expects array\<int\|model property of App\\Models\\Tenant, mixed\>\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: void\)\|Illuminate\\Contracts\\Database\\Query\\Expression\|model property of App\\Models\\Tenant, ''tenants\.contact…'' given\.$#'
identifier: argument.type
count: 1
path: app/Http/Controllers/Api/AdminTenantsController.php
-
message: '#^Parameter \#1 \$column of method Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\:\:orWhere\(\) expects array\<int\|model property of App\\Models\\Tenant, mixed\>\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: void\)\|Illuminate\\Contracts\\Database\\Query\\Expression\|model property of App\\Models\\Tenant, ''tenants\.subdomain'' given\.$#'
identifier: argument.type
count: 1
path: app/Http/Controllers/Api/AdminTenantsController.php
-
message: '#^Parameter \#1 \$column of method Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\:\:where\(\) expects array\<int\|model property of App\\Models\\Tenant, mixed\>\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: void\)\|Illuminate\\Contracts\\Database\\Query\\Expression\|model property of App\\Models\\Tenant, ''tenants\.status'' given\.$#'
identifier: argument.type
count: 1
path: app/Http/Controllers/Api/AdminTenantsController.php
-
message: '#^Parameter \#1 \$column of method Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\:\:where\(\) expects array\<int\|model property of App\\Models\\Tenant, mixed\>\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Tenant\>\)\: void\)\|Illuminate\\Contracts\\Database\\Query\\Expression\|model property of App\\Models\\Tenant, ''tenants…'' given\.$#'
identifier: argument.type
count: 1
path: app/Http/Controllers/Api/AdminTenantsController.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$gate_payload\.$#'
identifier: property.notFound
count: 1
path: app/Http/Controllers/Api/AutopodborController.php
-
message: '#^Anonymous function should return non\-empty\-array but returns non\-empty\-array\.$#'
identifier: return.type
count: 1
path: app/Http/Controllers/Api/AutopodborController.php
-
message: '#^Parameter \#1 \$array \(list\<array\{reason\: string, competitors\: list\<array\{id\: int, name\: string\|null, box\: string\|null, site_url\: string\|null, directory_urls\: array\<mixed\>, survivor\: bool\}\>\}\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Http/Controllers/Api/AutopodborController.php
-
message: '#^Parameter \#1 \$callback of method Illuminate\\Database\\Eloquent\\Collection\<int,App\\Models\\AutopodborCompetitor\>\:\:map\(\) expects callable\(App\\Models\\AutopodborCompetitor, int\)\: non\-empty\-array, Closure\(App\\Models\\AutopodborCompetitor\)\: non\-empty\-array given\.$#'
identifier: argument.type
count: 1
path: app/Http/Controllers/Api/AutopodborController.php
-
message: '#^Using nullsafe method call on non\-nullable type Illuminate\\Support\\Carbon\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: app/Http/Controllers/Api/AutopodborController.php
-
message: '#^Using nullsafe property access "\?\-\>directory_urls" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: app/Http/Controllers/Api/AutopodborController.php
-
message: '#^Using nullsafe method call on non\-nullable type Illuminate\\Support\\Carbon\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: app/Http/Controllers/Api/ChatController.php
-
message: '#^Using nullsafe method call on non\-nullable type Illuminate\\Support\\Carbon\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 6
path: app/Http/Controllers/Api/DealController.php
-
message: '#^Expression on left side of \?\? is not nullable\.$#'
identifier: nullCoalesce.expr
count: 1
path: app/Http/Controllers/Api/DealExportController.php
-
message: '#^Using nullsafe method call on non\-nullable type Illuminate\\Support\\Carbon\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: app/Http/Controllers/Api/DealExportController.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$gate_payload\.$#'
identifier: property.notFound
count: 2
path: app/Http/Controllers/Api/ProjectController.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$launch_deferred\.$#'
identifier: property.notFound
count: 1
path: app/Http/Controllers/Api/ProjectController.php
-
message: '#^Strict comparison using \!\=\= between int and null will always evaluate to true\.$#'
identifier: notIdentical.alwaysTrue
count: 1
path: app/Http/Middleware/SetTenantContext.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$box\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$description\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$directory_urls\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$id\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$is_federal\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$name\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$origin\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$relevance_pct\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$search_run_id\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$site_url\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$studied_at\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\CompetitorResource\:\:\$study_run_id\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/CompetitorResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$competitor_id\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$created_at\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$error_code\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$finished_at\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$id\.$#'
identifier: property.notFound
count: 3
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$kind\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$params\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$price_rub_charged\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$progress\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$region_code\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$result\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$started_at\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\RunResource\:\:\$status\.$#'
identifier: property.notFound
count: 2
path: app/Http/Resources/Autopodbor/RunResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$box\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$competitor_id\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$confirmations\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$created_project_id\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$id\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$identifier\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$office\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$phone_kind\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$phone_type\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$provenance_label\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$provenance_url\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\Autopodbor\\SourceResource\:\:\$signal_type\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/Autopodbor/SourceResource.php
-
message: '#^Access to an undefined property App\\Http\\Resources\\ProjectResource\:\:\$applies_from\.$#'
identifier: property.notFound
count: 1
path: app/Http/Resources/ProjectResource.php
-
message: '#^Parameter \#1 \$array \(list\<int\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Jobs/Autopodbor/RunAutopodborStudyJob.php
-
message: '#^Using nullsafe property access "\?\-\>message" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: app/Jobs/Bot/ProcessChatMessageJob.php
-
message: '#^Using nullsafe property access "\?\-\>source" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 2
path: app/Jobs/Bot/ProcessChatMessageJob.php
-
message: '#^Using nullsafe property access on non\-nullable type App\\Models\\BotDialog\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: app/Jobs/Bot/ProcessChatMessageJob.php
-
message: '#^Parameter \#1 \$array \(non\-empty\-list\<int\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Jobs/RouteSupplierLeadJob.php
-
message: '#^Strict comparison using \!\=\= between App\\Models\\Project and null will always evaluate to true\.$#'
identifier: notIdentical.alwaysTrue
count: 1
path: app/Jobs/RouteSupplierLeadJob.php
-
message: '#^Parameter \#1 \$array \(non\-empty\-list\<int\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Jobs/Supplier/SyncSupplierProjectsJob.php
-
message: '#^Parameter \#1 \$column of method Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Project\>\:\:where\(\) expects array\<int\|model property of App\\Models\\Project, mixed\>\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Project\>\)\: Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Project\>\)\|\(Closure\(Illuminate\\Database\\Eloquent\\Builder\<App\\Models\\Project\>\)\: void\)\|Illuminate\\Contracts\\Database\\Query\\Expression\|model property of App\\Models\\Project, ''snap\.snapshot_date'' given\.$#'
identifier: argument.type
count: 1
path: app/Jobs/Supplier/SyncSupplierProjectsJob.php
-
message: '#^Using nullsafe property access "\?\-\>name" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 2
path: app/Mail/NewLeadNotification.php
-
message: '#^Strict comparison using \=\=\= between string and null will always evaluate to false\.$#'
identifier: identical.alwaysFalse
count: 1
path: app/Models/PaymentGateway.php
-
message: '#^Cannot call method copy\(\) on string\.$#'
identifier: method.nonObject
count: 2
path: app/Services/Advertising/CampaignAudienceBuilder.php
-
message: '#^Instanceof between string\|null and DateTimeInterface will always evaluate to false\.$#'
identifier: instanceof.alwaysFalse
count: 1
path: app/Services/Advertising/CampaignImpressionCharger.php
-
message: '#^Result of && is always false\.$#'
identifier: booleanAnd.alwaysFalse
count: 1
path: app/Services/Advertising/CampaignImpressionCharger.php
-
message: '#^Right side of \|\| is always false\.$#'
identifier: booleanOr.rightAlwaysFalse
count: 1
path: app/Services/Advertising/CampaignImpressionCharger.php
-
message: '#^Instanceof between string\|null and DateTimeInterface will always evaluate to false\.$#'
identifier: instanceof.alwaysFalse
count: 1
path: app/Services/Advertising/CampaignLauncher.php
-
message: '#^Call to function is_string\(\) with string will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: app/Services/Advertising/CampaignMessageService.php
-
message: '#^Parameter \#1 \$array \(list\<array\{name\?\: string, site_url\?\: string\|null, description\?\: string\|null\}\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/Agent/Aggregator/AggregatorFilter.php
-
message: '#^Offset ''name'' on array\{name\: string, site_url\: string\|null, description\: string\|null\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Aggregator/AitunnelAggregatorClassifier.php
-
message: '#^Parameter \#1 \$array \(list\<array\{name\: string, site_url\: string\|null, description\: string\|null\}\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/Agent/Aggregator/AitunnelAggregatorClassifier.php
-
message: '#^Offset ''uncertain'' on array\{code\: array\<string, list\<string\>\>, body\: array\<string, int\>, emails\: list\<string\>, uncertain\: list\<string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Extract/CandidateBuilder.php
-
message: '#^Offset 1 on non\-empty\-list\<string\> on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Extract/DirectoryParser.php
-
message: '#^Ternary operator condition is always true\.$#'
identifier: ternary.alwaysTrue
count: 1
path: app/Services/Autopodbor/Agent/Extract/DirectoryParser.php
-
message: '#^Parameter \#1 \$array \(list\<array\{number\: string, kind\: string, label\: string, url\: string\|null, office\: string\|null, tracker\: bool\}\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/Agent/Extract/PhoneValidityGate.php
-
message: '#^Offset ''html'' on array\{html\: string, visiblePhones\: list\<string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Fetch/CurlPlaywrightFetcher.php
-
message: '#^Offset ''html'' on array\{html\: string\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Fetch/CurlPlaywrightFetcher.php
-
message: '#^Offset ''visiblePhones'' on array\{html\: string, visiblePhones\: list\<string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 2
path: app/Services/Autopodbor/Agent/Fetch/CurlPlaywrightFetcher.php
-
message: '#^Dead catch \- Symfony\\Component\\Process\\Exception\\ProcessTimedOutException is never thrown in the try block\.$#'
identifier: catch.neverThrown
count: 1
path: app/Services/Autopodbor/Agent/Fetch/LivePageFetcher.php
-
message: '#^Method App\\Services\\Autopodbor\\Agent\\Fetch\\SelfRenderClient\:\:request\(\) never returns null so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: app/Services/Autopodbor/Agent/Fetch/SelfRenderClient.php
-
message: '#^Method App\\Services\\Autopodbor\\Agent\\Fetch\\XfetchClient\:\:request\(\) never returns null so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: app/Services/Autopodbor/Agent/Fetch/XfetchClient.php
-
message: '#^Offset ''description'' on array\{name\: string, card_url\: string\} on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/LiveFindCompetitors.php
-
message: '#^Offset ''slug'' on array\{name\: string, card_url\: string\} in isset\(\) does not exist\.$#'
identifier: isset.offset
count: 1
path: app/Services/Autopodbor/Agent/LiveFindCompetitors.php
-
message: '#^Result of && is always false\.$#'
identifier: booleanAnd.alwaysFalse
count: 1
path: app/Services/Autopodbor/Agent/LiveFindCompetitors.php
-
message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: app/Services/Autopodbor/Agent/RealCompetitorAgent.php
-
message: '#^Offset ''elements'' on array\{name\: string, site_url\?\: string\|null, directory_urls\?\: array\} on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/RealCompetitorAgent.php
-
message: '#^Result of \|\| is always true\.$#'
identifier: booleanOr.alwaysTrue
count: 1
path: app/Services/Autopodbor/Agent/RealCompetitorAgent.php
-
message: '#^Strict comparison using \=\=\= between array\{\} and array\{\} will always evaluate to true\.$#'
identifier: identical.alwaysTrue
count: 1
path: app/Services/Autopodbor/Agent/RealCompetitorAgent.php
-
message: '#^Unreachable statement \- code above always terminates\.$#'
identifier: deadCode.unreachable
count: 1
path: app/Services/Autopodbor/Agent/RealCompetitorAgent.php
-
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/Agent/Similarity/AitunnelEmbedder.php
-
message: '#^Parameter \#1 \$array \(non\-empty\-list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/Agent/Similarity/EmbeddingRelevance.php
-
message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: app/Services/Autopodbor/Agent/Study/CompetitorFingerprint.php
-
message: '#^Offset ''digits'' on array\{digits\: string, url\: string, source\: string\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Study/CompositePhoneReverse.php
-
message: '#^Offset ''domain'' on array\{domain\: string, site_url\: string, card_url\: string\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Study/CompositePhoneReverse.php
-
message: '#^Offset ''digits'' on array\{digits\: string, url\: string, source\: string\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Study/ParallelPhoneReverse.php
-
message: '#^Offset ''domain'' on array\{domain\: string, site_url\: string, card_url\: string\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Study/ParallelPhoneReverse.php
-
message: '#^Offset ''card_url'' on array\{name\: string, card_url\: string\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Study/YandexPhoneReverseExpander.php
-
message: '#^Offset ''phones'' on array\{phones\: list\<string\>, site\: string\|null\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/Agent/Study/YandexPhoneReverseExpander.php
-
message: '#^Parameter \#1 \$array \(list\<array\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/AutopodborDedup.php
-
message: '#^Parameter \#1 \$array \(list\<array\{ids\: non\-empty\-list\<int\>, reason\: string\}\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/AutopodborDedup.php
-
message: '#^Parameter \#1 \$array \(list\<non\-empty\-string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: app/Services/Autopodbor/AutopodborNormalizer.php
-
message: '#^Offset ''directory_urls'' on array\{name\: string, site_url\: string\|null, directory_urls\: array\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/AutopodborRunService.php
-
message: '#^Using nullsafe property access "\?\-\>region_code" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 2
path: app/Services/Autopodbor/AutopodborRunService.php
-
message: '#^Offset ''cards'' on array\{name\: string, sites\: list\<string\>, cards\: list\<string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/CompetitorElements.php
-
message: '#^Offset ''sites'' on array\{name\: string, sites\: list\<string\>, cards\: list\<string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/CompetitorElements.php
-
message: '#^Offset ''dismissed_actualize…'' on array\{id\: int, box\: string, name\?\: string, site_url\?\: string\|null, directory_urls\?\: array\} on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Autopodbor/ProposalClassifier.php
-
message: '#^Parameter \#1 \$array \(array\{\}\) to function array_values is empty, call has no effect\.$#'
identifier: arrayValues.empty
count: 1
path: app/Services/Autopodbor/ProposalClassifier.php
-
message: '#^Offset ''num'' on array\{0\: list\<string\>, num\: list\<non\-falsy\-string\|numeric\-string\>, 1\: list\<non\-falsy\-string\|numeric\-string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Bot/AnswerGuard.php
-
message: '#^Offset 0 on array\{list\<string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Bot/AnswerGuard.php
-
message: '#^Offset 1 on array\{list\<string\>, list\<non\-empty\-string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Bot/AnswerGuard.php
-
message: '#^Offset 1 on array\{list\<string\>, list\<non\-falsy\-string\>\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Bot/AnswerGuard.php
-
message: '#^Offset ''role'' on array\{role\: string, text\: string\} on left side of \?\? always exists and is not nullable\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Services/Bot/BotAnswerService.php
-
message: '#^Access to an undefined property App\\Models\\KnowledgeChunk\:\:\$headline_rank\.$#'
identifier: property.notFound
count: 2
path: app/Services/Bot/KnowledgeSearch.php
-
message: '#^Access to an undefined property App\\Models\\KnowledgeChunk\:\:\$rank\.$#'
identifier: property.notFound
count: 2
path: app/Services/Bot/KnowledgeSearch.php
-
message: '#^Right side of && is always true\.$#'
identifier: booleanAnd.rightAlwaysTrue
count: 1
path: app/Services/External/Yandex360BalanceStore.php
-
message: '#^Call to function is_array\(\) with array\<mixed\> will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: app/Services/LeadRegionResolver.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$snapshot_daily_limit\.$#'
identifier: property.notFound
count: 1
path: app/Services/LeadRouter.php
-
message: '#^Call to function is_array\(\) with array\<mixed\> will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: app/Services/NotificationService.php
-
message: '#^Using nullsafe property access "\?\-\>name" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: app/Services/NotificationService.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$activate_deferred\.$#'
identifier: property.notFound
count: 3
path: app/Services/Project/ProjectService.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$applies_from\.$#'
identifier: property.notFound
count: 1
path: app/Services/Project/ProjectService.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$gate_payload\.$#'
identifier: property.notFound
count: 4
path: app/Services/Project/ProjectService.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$launch_deferred\.$#'
identifier: property.notFound
count: 1
path: app/Services/Project/ProjectService.php
-
message: '#^Match expression does not handle remaining value\: string$#'
identifier: match.unhandled
count: 1
path: app/Services/Project/ProjectService.php
-
message: '#^Method App\\Services\\Project\\ProjectService\:\:bulkSimpleUpdate\(\) is unused\.$#'
identifier: method.unused
count: 1
path: app/Services/Project/ProjectService.php
-
message: '#^Strict comparison using \!\=\= between App\\Services\\Billing\\GateResult and null will always evaluate to true\.$#'
identifier: notIdentical.alwaysTrue
count: 2
path: app/Services/Project/ProjectService.php
-
message: '#^Strict comparison using \!\=\= between App\\Models\\SalesUser and null will always evaluate to true\.$#'
identifier: notIdentical.alwaysTrue
count: 1
path: app/Services/Sales/SalesAttachmentService.php
-
message: '#^Using nullsafe property access on non\-nullable type App\\Models\\SalesUser\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 2
path: app/Services/Sales/SalesPayoutService.php
-
message: '#^Call to function is_array\(\) with array\<string, mixed\> will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: app/Services/Supplier/Channel/AjaxProjectChannel.php
-
message: '#^PHPDoc tag @param references unknown parameter\: \$utm$#'
identifier: parameter.notFound
count: 1
path: app/Services/Tracking/VisitTracker.php
-
message: '#^Offset non\-empty\-string on array\{\} on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: app/Support/DaDataRegionMap.php
-
message: '#^Return type \(array\<string, mixed\>\) of method Database\\Factories\\BalanceTransactionFactory\:\:definition\(\) should be compatible with return type \(array\<model property of App\\Models\\BalanceTransaction, mixed\>\) of method Illuminate\\Database\\Eloquent\\Factories\\Factory\<App\\Models\\BalanceTransaction\>\:\:definition\(\)$#'
identifier: method.childReturnType
count: 1
path: database/factories/BalanceTransactionFactory.php
-
message: '#^Return type \(array\<string, mixed\>\) of method Database\\Factories\\ProjectFactory\:\:definition\(\) should be compatible with return type \(array\<model property of App\\Models\\Project, mixed\>\) of method Illuminate\\Database\\Eloquent\\Factories\\Factory\<App\\Models\\Project\>\:\:definition\(\)$#'
identifier: method.childReturnType
count: 1
path: database/factories/ProjectFactory.php
-
message: '#^Parameter \#1 \$state of method Illuminate\\Database\\Eloquent\\Factories\\Factory\<App\\Models\\User\>\:\:state\(\) expects array\<string, mixed\>\|\(callable\(array\<string, mixed\>, Illuminate\\Database\\Eloquent\\Model\|null\)\: array\<string, mixed\>\), Closure\(array, App\\Models\\ReportJob\)\: array\{tenant_id\: int\} given\.$#'
identifier: argument.type
count: 1
path: database/factories/ReportJobFactory.php
-
message: '#^Return type \(array\<string, mixed\>\) of method Database\\Factories\\TenantFactory\:\:definition\(\) should be compatible with return type \(array\<model property of App\\Models\\Tenant, mixed\>\) of method Illuminate\\Database\\Eloquent\\Factories\\Factory\<App\\Models\\Tenant\>\:\:definition\(\)$#'
identifier: method.childReturnType
count: 1
path: database/factories/TenantFactory.php
-
message: '#^Return type \(array\<string, mixed\>\) of method Database\\Factories\\UserFactory\:\:definition\(\) should be compatible with return type \(array\<model property of App\\Models\\User, mixed\>\) of method Illuminate\\Database\\Eloquent\\Factories\\Factory\<App\\Models\\User\>\:\:definition\(\)$#'
identifier: method.childReturnType
count: 1
path: database/factories/UserFactory.php
-
message: '#^Using nullsafe method call on non\-nullable type Illuminate\\Console\\Command\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: database/seeders/OmegaDemoFieldSeeder.php
-
message: '#^Offset ''SnapshotProjectRout…'' on null in isset\(\) does not exist\.$#'
identifier: isset.offset
count: 1
path: routes/console.php
-
message: '#^Offset ''projects\:reset…'' on null in isset\(\) does not exist\.$#'
identifier: isset.offset
count: 1
path: routes/console.php
-
message: '#^Trait Tests\\Concerns\\SharesAdminPdo is used zero times and is not analysed\.$#'
identifier: trait.unused
count: 1
path: tests/Concerns/SharesAdminPdo.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/AdminSystemSettingsTest.php
-
message: '#^Offset ''79990005001'' on array\<string, int\<1, max\>\> on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: tests/Feature/Advertising/AudienceBuilderModeTest.php
-
message: '#^Cannot call method format\(\) on string\.$#'
identifier: method.nonObject
count: 1
path: tests/Feature/Advertising/CampaignLauncherTest.php
-
message: '#^Offset ''adgroups'' on array\{\} on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: tests/Feature/Advertising/CampaignLauncherTest.php
-
message: '#^Offset ''ads'' on array\{\} on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: tests/Feature/Advertising/CampaignLauncherTest.php
-
message: '#^Offset ''audiencetargets'' on array\{\} on left side of \?\? does not exist\.$#'
identifier: nullCoalesce.offset
count: 1
path: tests/Feature/Advertising/CampaignLauncherTest.php
-
message: '#^Right side of && is always true\.$#'
identifier: booleanAnd.rightAlwaysTrue
count: 1
path: tests/Feature/Advertising/CampaignLauncherTest.php
-
message: '#^Ternary operator condition is always true\.$#'
identifier: ternary.alwaysTrue
count: 1
path: tests/Feature/Advertising/CampaignLauncherTest.php
-
message: '#^Cannot call method format\(\) on string\.$#'
identifier: method.nonObject
count: 2
path: tests/Feature/Advertising/CampaignModeModelTest.php
-
message: '#^Cannot call method format\(\) on string\.$#'
identifier: method.nonObject
count: 2
path: tests/Feature/Advertising/CampaignPokazyStoreTest.php
-
message: '#^Using nullsafe property access "\?\-\>cnt" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: tests/Feature/Audit/AuditRebuildChainTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<string\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 2
path: tests/Feature/Audit/VerifyAuditChainsTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<array\<mixed\>\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Autopodbor/AutopodborCompetitorMergerTest.php
-
message: '#^Access to an undefined property Pest\\Expectation\<App\\Models\\AutopodborSource\|null\>\:\:\$box\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Autopodbor/AutopodborManualApiTest.php
-
message: '#^Parameter \#1 \$value of method Pest\\Expectation\<string\|null\>\:\:and\(\) expects Illuminate\\Support\\Collection\<\(int\|string\), array\{signal_type\: string, identifier\: string, phone_kind\: string\|null, phone_type\: string\|null, provenance_url\: string\|null, provenance_label\: string\|null, where_found\: array\<int, array\{label\: string, url\: string\|null\}\>, office\: string\|null, \.\.\.\}\>, Illuminate\\Support\\Collection\<\(int\|string\), array\{signal_type\: string, identifier\: string, phone_kind\: string\|null, phone_type\: string\|null, provenance_url\: string\|null, provenance_label\: string\|null, where_found\: array\<int, array\{label\: string, url\: string\|null\}\>, office\: string\|null, \.\.\.\}\> given\.$#'
identifier: argument.type
count: 1
path: tests/Feature/Autopodbor/DeepStudyCollectorTest.php
-
message: '#^Access to an undefined property App\\Services\\Autopodbor\\RunProgressChannel\:\:\$calls\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Autopodbor/LiveFindProgressTest.php
-
message: '#^Access to an undefined property App\\Services\\Autopodbor\\RunProgressChannel\:\:\$calls\.$#'
identifier: property.notFound
count: 2
path: tests/Feature/Autopodbor/StudyProgressTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/Billing/OnlineTopupServiceTest.php
-
message: '#^Parameter \#1 \$driver of class App\\Services\\Billing\\OnlineTopupService constructor expects App\\Services\\Billing\\Gateway\\PaymentGatewayDriver, Mockery\\MockInterface given\.$#'
identifier: argument.type
count: 1
path: tests/Feature/Billing/OnlineTopupServiceTest.php
-
message: '#^Call to an undefined static method Illuminate\\Support\\Facades\\Log\:\:shouldHaveReceived\(\)\.$#'
identifier: staticMethod.notFound
count: 1
path: tests/Feature/Bot/ProcessChatMessageJobTest.php
-
message: '#^Method class@anonymous/tests/Feature/Bot/ProcessChatMessageJobTest\.php\:119\:\:card\(\) never returns null so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: tests/Feature/Bot/ProcessChatMessageJobTest.php
-
message: '#^Method class@anonymous/tests/Feature/Bot/ProcessChatMessageJobTest\.php\:161\:\:card\(\) never returns null so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: tests/Feature/Bot/ProcessChatMessageJobTest.php
-
message: '#^Parameter \#1 \$value of function expect expects Illuminate\\Support\\Collection\<int, array\{Illuminate\\Http\\Client\\Request, Illuminate\\Http\\Client\\Response\|null\}\>\|null, Illuminate\\Support\\Collection\<int, array\{Illuminate\\Http\\Client\\Request, Illuminate\\Http\\Client\\Response\|null\}\> given\.$#'
identifier: argument.type
count: 1
path: tests/Feature/Bot/ProcessChatMessageJobTest.php
-
message: '#^Call to an undefined static method Illuminate\\Support\\Facades\\Log\:\:shouldHaveReceived\(\)\.$#'
identifier: staticMethod.notFound
count: 1
path: tests/Feature/ClientTg/AutoSafeguardTest.php
-
message: '#^Cannot call method toDateString\(\) on string\.$#'
identifier: method.nonObject
count: 1
path: tests/Feature/ClientTg/AutoSafeguardTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andThrow\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/ClientTg/DealObserverTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andReturnUsing\(\)\.$#'
identifier: method.notFound
count: 2
path: tests/Feature/ClientTg/LaunchIdempotencyTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/ClientTg/ManualFlowTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:never\(\)\.$#'
identifier: method.notFound
count: 7
path: tests/Feature/ClientTg/PollModerationTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 2
path: tests/Feature/ClientTg/PollModerationTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andReturnUsing\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/ClientTg/ResubmitJobTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<string\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/ClientTg/ResubmitTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/ClientTg/RunCampaignJobTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andReturnUsing\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/ClientTg/RunCampaignJobTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andReturnUsing\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/ClientTg/SandboxTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 2
path: tests/Feature/Console/SnapshotBackfillCommandTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 2
path: tests/Feature/Console/SnapshotRebuildCommandTest.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$applies_from\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Http/Resources/ProjectResourceAppliesFromTest.php
-
message: '#^Using nullsafe property access "\?\-\>region_source" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 1
path: tests/Feature/Imitation/ScenarioBC_RegionCascadeTest.php
-
message: '#^Using nullsafe property access "\?\-\>routing_step" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 4
path: tests/Feature/Imitation/ScenarioBC_RegionCascadeTest.php
-
message: '#^Using nullsafe property access "\?\-\>subject_code_resolved" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 4
path: tests/Feature/Imitation/ScenarioBC_RegionCascadeTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 2
path: tests/Feature/Jobs/RouteSupplierLeadJobSnapshotTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 1
path: tests/Feature/Jobs/SnapshotProjectRoutingJobTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 4
path: tests/Feature/Jobs/Supplier/SyncSupplierProjectsJobSnapshotTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 1
path: tests/Feature/LeadRouter/FrozenFilterTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 4
path: tests/Feature/LeadRouter/SnapshotRoutingTest.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$gate_payload\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Project/CreateLaunchGateTest.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$launch_deferred\.$#'
identifier: property.notFound
count: 3
path: tests/Feature/Project/CreateLaunchGateTest.php
-
message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:getData\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/Project/ProjectCreateDedupTest.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$activate_deferred\.$#'
identifier: property.notFound
count: 2
path: tests/Feature/Project/SetActiveGateTest.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$gate_payload\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Project/SetActiveGateTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<list\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Sales/SalesAttachmentApiTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Sales/SalesAuthTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 3
path: tests/Feature/Sales/SalesClientCardTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<list\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 3
path: tests/Feature/Sales/SalesClientsIndexTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<Illuminate\\Support\\Collection\<\(int\|string\), mixed\>\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Sales/SalesIntegrationApiTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 2
path: tests/Feature/Sales/SalesOverviewTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<list\<int\>\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Sales/SalesOwnershipScopeTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Sales/SalesOwnershipScopeTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<Illuminate\\Support\\Collection\<\(int\|string\), mixed\>\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 5
path: tests/Feature/Sales/SalesProspectApiTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<list\|null\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/Sales/SalesTariffApiTest.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$routing_step\.$#'
identifier: property.notFound
count: 6
path: tests/Feature/Services/LeadRouterCascadeTest.php
-
message: '#^Access to an undefined property App\\Models\\Project\:\:\$applies_from\.$#'
identifier: property.notFound
count: 5
path: tests/Feature/Services/Project/ProjectServiceAppliesFromTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 4
path: tests/Feature/Services/Project/ProjectServiceAppliesFromTest.php
-
message: '#^Static method Carbon\\Carbon\:\:setTestNow\(\) invoked with 2 parameters, 0\-1 required\.$#'
identifier: arguments.count
count: 5
path: tests/Feature/Services/Project/SupplierSnapshotGuardAppliesFromTest.php
-
message: '#^Access to an undefined property App\\Services\\Supplier\\PlaywrightBridge\:\:\$lastArgs\.$#'
identifier: property.notFound
count: 7
path: tests/Feature/Supplier/Channel/FormProjectChannelTest.php
-
message: '#^Call to an undefined method Illuminate\\Contracts\\Cache\\Repository\:\:lock\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/Supplier/CsvReconcileJobTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/Supplier/DeleteSupplierProjectJobTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/Supplier/DeleteSupplierProjectTailGuardTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andThrow\(\)\.$#'
identifier: method.notFound
count: 3
path: tests/Feature/Supplier/FailoverProjectChannelLiveSmokeTest.php
-
message: '#^Parameter \#1 \$tier1 of class App\\Services\\Supplier\\Channel\\FailoverProjectChannel constructor expects App\\Services\\Supplier\\Channel\\SupplierProjectChannel, Mockery\\MockInterface given\.$#'
identifier: argument.type
count: 2
path: tests/Feature/Supplier/FailoverProjectChannelLiveSmokeTest.php
-
message: '#^Parameter \#2 \$tier2 of class App\\Services\\Supplier\\Channel\\FailoverProjectChannel constructor expects App\\Services\\Supplier\\Channel\\SupplierProjectChannel, Mockery\\MockInterface given\.$#'
identifier: argument.type
count: 2
path: tests/Feature/Supplier/FailoverProjectChannelLiveSmokeTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andReturnNull\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/Supplier/OnlineDeferWindowTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 4
path: tests/Feature/Supplier/PruneSupplierExtraChannelsJobTest.php
-
message: '#^Cannot access property \$resolved_at on array\<mixed\>\|object\.$#'
identifier: property.nonObject
count: 1
path: tests/Feature/Supplier/RetryFailedSupplierJobsCommandTest.php
-
message: '#^Cannot access property \$retried_at on array\<mixed\>\|object\.$#'
identifier: property.nonObject
count: 4
path: tests/Feature/Supplier/RetryFailedSupplierJobsCommandTest.php
-
message: '#^Cannot access property \$retry_count on array\<mixed\>\|object\.$#'
identifier: property.nonObject
count: 7
path: tests/Feature/Supplier/RetryFailedSupplierJobsCommandTest.php
-
message: '#^Parameter \#1 \$client of class App\\Services\\Supplier\\Import\\SupplierProjectImporter constructor expects App\\Services\\Supplier\\SupplierPortalClient, Mockery\\MockInterface given\.$#'
identifier: argument.type
count: 1
path: tests/Feature/Supplier/SupplierProjectImporterTest.php
-
message: '#^Call to an undefined method App\\Services\\Supplier\\PlaywrightBridge\:\:shouldReceive\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/Supplier/SupplierSessionRefreshCommandTest.php
-
message: '#^Using nullsafe property access "\?\-\>error" on left side of \?\? is unnecessary\. Use \-\> instead\.$#'
identifier: nullsafe.neverNull
count: 2
path: tests/Feature/Supplier/SupplierWebhookFastFailTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Feature/WebhookSettingsControllerTest.php
-
message: '#^Access to an undefined property App\\Services\\Autopodbor\\Agent\\Fetch\\YandexListSource\:\:\$calls\.$#'
identifier: property.notFound
count: 4
path: tests/Unit/Autopodbor/ChannelA/PlaywrightYandexDirectoryTest.php
-
message: '#^Offset ''slug'' does not exist on array\{name\: string, card_url\: string\}\.$#'
identifier: offsetAccess.notFound
count: 1
path: tests/Unit/Autopodbor/ChannelA/PlaywrightYandexDirectoryTest.php
-
message: '#^Access to an undefined property App\\Services\\Autopodbor\\Agent\\Fetch\\PageFetcher\:\:\$requested\.$#'
identifier: property.notFound
count: 2
path: tests/Unit/Autopodbor/CompetitorCardEnricherTest.php
-
message: '#^Parameter \#1 \$value of function expect expects Illuminate\\Support\\Collection\<\(int\|string\), array\{number\: string, kind\: string, label\: string, url\: string\|null, office\: string\|null, tracker\: bool\}\>\|null, Illuminate\\Support\\Collection\<\(int\|string\), array\{number\: string, kind\: string, label\: string, url\: string\|null, office\: string\|null, tracker\: bool\}\> given\.$#'
identifier: argument.type
count: 4
path: tests/Unit/Autopodbor/Extract/CandidateBuilderTest.php
-
message: '#^Offset ''78432032533'' does not exist on array\<string, int\>\.$#'
identifier: offsetAccess.notFound
count: 1
path: tests/Unit/Autopodbor/Extract/HtmlPhoneScannerTest.php
-
message: '#^Offset ''78432032533'' does not exist on array\<string, list\<string\>\>\.$#'
identifier: offsetAccess.notFound
count: 2
path: tests/Unit/Autopodbor/Extract/HtmlPhoneScannerTest.php
-
message: '#^Offset ''78432452533'' does not exist on array\<string, list\<string\>\>\.$#'
identifier: offsetAccess.notFound
count: 1
path: tests/Unit/Autopodbor/Extract/HtmlPhoneScannerTest.php
-
message: '#^Parameter \#1 \$value of function expect expects Illuminate\\Support\\Collection\<\(int\|string\), array\{number\: string, kind\: string, label\: string, url\: string\|null, office\: string\|null, tracker\: bool\}\>\|null, Illuminate\\Support\\Collection\<\(int\|string\), array\{number\: string, kind\: string, label\: string, url\: string\|null, office\: string\|null, tracker\: bool\}\> given\.$#'
identifier: argument.type
count: 1
path: tests/Unit/Autopodbor/Extract/TextNumbersUnverifiedTest.php
-
message: '#^Access to an undefined property App\\Services\\Autopodbor\\Agent\\Fetch\\BatchPageFetcher\:\:\$batchCalls\.$#'
identifier: property.notFound
count: 3
path: tests/Unit/Autopodbor/Fetch/XfetchDirectoryFetcherTest.php
-
message: '#^Parameter \#1 \$array \(list\<string\>\) of array_values is already a list, call has no effect\.$#'
identifier: arrayValues.list
count: 1
path: tests/Unit/Autopodbor/Fetch/XfetchDirectoryFetcherTest.php
-
message: '#^Access to an undefined property Pest\\Mixins\\Expectation\<mixed\>\:\:\$not\.$#'
identifier: property.notFound
count: 1
path: tests/Unit/Autopodbor/FindCompetitorsAssemblerTest.php
-
message: '#^Method App\\Services\\Autopodbor\\Agent\\Aggregator\\AggregatorClassifier@anonymous/tests/Unit/Autopodbor/FindCompetitorsAssemblerTest\.php\:94\:\:isAggregator\(\) never returns null so it can be removed from the return type\.$#'
identifier: return.unusedType
count: 1
path: tests/Unit/Autopodbor/FindCompetitorsAssemblerTest.php
-
message: '#^Parameter \#1 \$value of function expect expects Illuminate\\Support\\Collection\<int, array\{name\: string, description\?\: string\|null, is_federal\?\: bool, relevance_pct\?\: int\|null, site_url\?\: string\|null, directory_urls\?\: array, provenance\?\: array\}\>\|null, Illuminate\\Support\\Collection\<int, array\{name\: string, description\?\: string\|null, is_federal\?\: bool, relevance_pct\?\: int\|null, site_url\?\: string\|null, directory_urls\?\: array, provenance\?\: array\}\> given\.$#'
identifier: argument.type
count: 1
path: tests/Unit/Autopodbor/LiveFindCompetitorsTest.php
-
message: '#^Offset ''is_federal'' does not exist on array\{name\: string, description\?\: string\|null, site_url\?\: string\|null, directory_urls\?\: array, provenance\?\: array\}\.$#'
identifier: offsetAccess.notFound
count: 2
path: tests/Unit/Autopodbor/Resolve/ResolvingAgentTest.php
-
message: '#^Parameter \#4 \$anchorDigits of method App\\Services\\Autopodbor\\Agent\\Study\\AnchorGate\:\:cardKept\(\) expects array\<string, bool\>, array\<int, true\> given\.$#'
identifier: argument.type
count: 4
path: tests/Unit/Autopodbor/Study/AnchorGateTest.php
-
message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#'
identifier: method.alreadyNarrowedType
count: 1
path: tests/Unit/ExampleTest.php
-
message: '#^Call to function property_exists\(\) with App\\Exceptions\\Billing\\InsufficientBalanceException and ''balanceLeads'' will always evaluate to false\.$#'
identifier: function.impossibleType
count: 1
path: tests/Unit/Exceptions/InsufficientBalanceExceptionTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andThrow\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Unit/External/SupplierBalanceProviderTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 2
path: tests/Unit/External/SupplierBalanceProviderTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andThrow\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Unit/Services/Project/ProjectServiceGuardWiringTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:once\(\)\.$#'
identifier: method.notFound
count: 2
path: tests/Unit/Services/Project/ProjectServiceGuardWiringTest.php
-
message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#'
identifier: method.alreadyNarrowedType
count: 4
path: tests/Unit/Services/Project/ProjectServiceGuardWiringTest.php
-
message: '#^Parameter \#2 \$snapshotGuard of class App\\Services\\Project\\ProjectService constructor expects App\\Services\\Project\\SupplierSnapshotGuard, Mockery\\MockInterface given\.$#'
identifier: argument.type
count: 4
path: tests/Unit/Services/Project/ProjectServiceGuardWiringTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:with\(\)\.$#'
identifier: method.notFound
count: 2
path: tests/Unit/Services/Project/SupplierSnapshotGuardTest.php
-
message: '#^Call to method PHPUnit\\Framework\\Assert\:\:assertTrue\(\) with true will always evaluate to true\.$#'
identifier: method.alreadyNarrowedType
count: 2
path: tests/Unit/Services/Project/SupplierSnapshotGuardTest.php
-
message: '#^Property App\\Models\\IdeHelperProject\:\:\$paused_at \(Illuminate\\Support\\Carbon\|null\) does not accept Carbon\\CarbonImmutable\.$#'
identifier: assign.propertyType
count: 2
path: tests/Unit/Services/Project/SupplierSnapshotGuardTest.php
-
message: '#^Call to an undefined method App\\Services\\Supplier\\ProcessFactory\:\:shouldReceive\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Unit/Supplier/PlaywrightBridgeTest.php
-
message: '#^Parameter \#1 \$processFactory of class App\\Services\\Supplier\\PlaywrightBridge constructor expects App\\Services\\Supplier\\ProcessFactory, Mockery\\MockInterface given\.$#'
identifier: argument.type
count: 3
path: tests/Unit/Supplier/PlaywrightBridgeTest.php
-
message: '#^Call to an undefined method App\\Services\\Supplier\\PlaywrightBridge\:\:shouldReceive\(\)\.$#'
identifier: method.notFound
count: 2
path: tests/Unit/Supplier/RefreshSupplierSessionJobTest.php
-
message: '#^Parameter \#4 \$activeLiderraProjects of static method App\\Services\\Supplier\\SupplierQuotaAllocator\:\:allocate\(\) expects Illuminate\\Support\\Collection\<int, stdClass\>, Illuminate\\Support\\Collection\<int, \(object\{daily_limit\: 5, workdays\: array\{1, 2, 3, 4, 5\}, regions\: array\{77, 50\}\}&stdClass\)\|\(object\{daily_limit\: 5, workdays\: array\{1, 2, 3, 4, 5\}, regions\: array\{50, 78\}\}&stdClass\)\> given\.$#'
identifier: argument.type
count: 1
path: tests/Unit/Supplier/SupplierQuotaAllocatorTest.php
-
message: '#^Parameter \#4 \$activeLiderraProjects of static method App\\Services\\Supplier\\SupplierQuotaAllocator\:\:allocate\(\) expects Illuminate\\Support\\Collection\<int, stdClass\>, Illuminate\\Support\\Collection\<int, \(object\{daily_limit\: 5, workdays\: array\{1, 2, 3\}, regions\: array\{\}\}&stdClass\)\|\(object\{daily_limit\: 5, workdays\: array\{3, 4, 5\}, regions\: array\{\}\}&stdClass\)\> given\.$#'
identifier: argument.type
count: 1
path: tests/Unit/Supplier/SupplierQuotaAllocatorTest.php
-
message: '#^Parameter \#4 \$activeLiderraProjects of static method App\\Services\\Supplier\\SupplierQuotaAllocator\:\:allocate\(\) expects Illuminate\\Support\\Collection\<int, stdClass\>, Illuminate\\Support\\Collection\<int, object\{daily_limit\: 10, workdays\: array\{6, 7\}, regions\: array\{\}\}&stdClass\> given\.$#'
identifier: argument.type
count: 1
path: tests/Unit/Supplier/SupplierQuotaAllocatorTest.php
-
message: '#^Offset ''adHeadline'' does not exist on string\.$#'
identifier: offsetAccess.notFound
count: 1
path: tests/Feature/ClientTg/AdHeadlineTest.php
-
message: '#^Call to an undefined method Mockery\\ExpectationInterface\|Mockery\\HigherOrderMessage\:\:andReturnUsing\(\)\.$#'
identifier: method.notFound
count: 1
path: tests/Feature/ClientTg/RunTelegramCampaignTransportTest.php