Перейти к содержимому

Список изменений

  • Пять правил ядра, 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.0 ctx.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 (аргументы, которые читает тело, попадают в ключ).