Skip to content

fix: устранить CS8604 на пути конфигурации MbeTableFB#116

Merged
EvaTheSalmon merged 1 commit into
masterfrom
feature/cs8604-configdirpath
Jun 5, 2026
Merged

fix: устранить CS8604 на пути конфигурации MbeTableFB#116
EvaTheSalmon merged 1 commit into
masterfrom
feature/cs8604-configdirpath

Conversation

@EvaTheSalmon

Copy link
Copy Markdown
Member

Хвост #110/#115: расширение условия фолбэка до IsNullOrWhiteSpace ввело предупреждение CS8604 — на net48 mscorlib нет [NotNullWhen(false)] на IsNullOrWhiteSpace, и null-state-анализ не сужается guard'ом. В сборках #115 предупреждение не было замечено из-за инкрементальности (компиляция не перезапускалась, сводка показывала ноль предупреждений); CI собирает начисто и предупреждение показал.

Что сделано

Явная проверка _configDirPath is null первым дизъюнктом условия — обучает анализатор без оператора подавления !. Порядок выбран намеренно: первый дизъюнкт выполняется в рантайме и не помечается Rider'ом как «always false» (в обратном порядке Code Cleanup снёс бы его как избыточный, вернув предупреждение). Комментарий в коде фиксирует причину, чтобы проверку не упростили обратно.

Рантайм-поведение не меняется: IsNullOrWhiteSpace(null) и так возвращает true.

Проверка

dotnet build --no-incremental обеих конфигураций: 0 предупреждений CS. 293/293 теста, формат чистый.

🤖 Generated with Claude Code

net48 mscorlib не имеет [NotNullWhen(false)] на IsNullOrWhiteSpace, поэтому
guard сам по себе не сужает null-state. Явная проверка `is null` первым
дизъюнктом обучает анализатор без оператора подавления `!`; порядок выбран
так, чтобы проверка выполнялась в рантайме и не помечалась линтером как
мёртвая.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@EvaTheSalmon EvaTheSalmon merged commit 0e749e8 into master Jun 5, 2026
1 check passed
@EvaTheSalmon EvaTheSalmon deleted the feature/cs8604-configdirpath branch June 5, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant