id: no-nullable-boolean
language: Kotlin
severity: hint
message: Avoid `Boolean?`; use `Boolean` with a default value instead.
note: |
Nullable `Boolean?` has three states (`true`, `false`, `null`) which
complicates control flow. Use `Boolean` with a default value of
`false` or `true`, or use a sealed class/enum for tri-state logic.
rule:
any:
- pattern: "val $NAME: Boolean? = $VALUE"
- pattern: "var $NAME: Boolean? = $VALUE"
- pattern: "fun $NAME($A: Boolean?): $B { $$$ }"
- pattern: "fun $NAME(): Boolean? { $$$ }"
files:
- "**/*.kt"
- "**/*.kts"