Список изменений
- Пять правил ядра,
ctx_in_cleanup,release_on_the_call,catch_without_check,sync_fake_asyncиbare_await, приходят из нового пакетаasync_job_lints— для кода на одном async_job. Этот плагин включает их под теми же именами, поэтомуdiagnostics:и// ignore:остаются прежними. Их изменения перечисляет список измененийasync_job_lints. Идентификаторы быстрых исправленийrelease_on_the_callиcatch_without_checkначинаются сasync_job_lints.fix., а не сsolo_lints.fix., поэтому привязке редактора к старому идентификатору нужен новый. Называйте один из двух плагинов, а не оба. - README описывает пакет как плагин для solo и flutter_solo, а правила ядра
ведут в README
async_job_lints. - У пакета есть пример: рекордер с тремя ошибками, строки, о которых сообщает плагин, и та же задача исправленной.
pubspec.yamlназывает сайт документации, и pub.dev ссылается на него.- Блоки README просят эту версию.
- Тесты идут против async_job и solo 1.0.0; правила не менялись.
- README больше не называет
waitсреди членов контекста: в async_job 1.0ctx.waitнет. Его раздел «Версии» говорит, что правила по-прежнему знаютwait— имяabandonableдо 1.0. - Блоки README просят эту версию.
- README ссылается на страницу пакета на сайте документации.
- README говорит, что
dart analyzeпоказывает диагностики плагина для корня пакета или отдельных файлов, но не для каталога ниже корня, напримерlib.
- README больше не говорит, что диагностики плагина показывает
flutter analyze: начиная с Flutter 3.44 он не показывает ни одной, и во Flutter-пакете плагин проверяют черезdart analyze.
bare_await, линт:awaitв теле задачи, который ждёт мимо контекста, так что отмена задачи ожидание не прерывает, иawait for, который читает стрим мимоctx.each. Правило молчит в уборке, в действияхjoinиuncancellable, в работеunattended, вfinally, в теле задачи сcancellable: falseи об освобождении сразу послеctx.disown.- README говорит, как поднять правило до предупреждения, что
dart fixне применяет быстрые исправления плагина и что Dart 3.12 печатает каждую диагностику анализатора дважды в пакете, который называет плагин.
Первый выпуск. Плагин анализатора для кода на async_job и solo, для Dart
3.10 и новее.
ctx_in_cleanup, предупреждение: член контекста, который ждёт, вызван в уборке, где он бросаетStateError.release_on_the_call, предупреждение: освобождение зарегистрировано строкой ниже вызова, который приносит ресурс, и отмена между ними ресурс теряет.catch_without_check, линт: широкийcatchв теле, которое действует, не спросив задачу, отменена ли она.sync_fake_async, предупреждение:async-колбэкfakeAsyncилиFakeAsync.run.await_own_queue, предупреждение: задача контроллераSoloждёт задачу, поставленную в очередь того же контроллера, или егоclose()либоcancelAll().key_per_request, линт: задачаPolicy.droppable, у которой ключ не читает ни одного аргумента, а тело читает, и поздний вызывающий получает результат первого.ignore_failure_hides_bugs, линт:ignoreFailure()у задачи, которая называет свои ожидаемые ошибки вisExpectedError, прячет баги, которые предикат пропускает.- Быстрые исправления для
release_on_the_call(освобождение переходит вdispose:илиdiscard:вызова),catch_without_check(ctx.check();встаёт первой строкойcatch) иkey_per_request(аргументы, которые читает тело, попадают в ключ).