Why this matters
Avoids ClassCastException at runtime and clarifies expected types.
Use safe casts (as?) with null checks or require statements instead of unchecked as.
Avoids ClassCastException at runtime and clarifies expected types.
Side-by-side examples engineers can pattern-match during review.
val u = obj as Userval u = obj as? User ?: return Result.failure(IllegalArgumentException("expected User"))(x as List<String>).sizeval xs = x as? List<String> ?: emptyList()From the same buckets as this rule.
Check if loops use equality operators (== or !=) in termination conditions. These can lead to infinite loops if the condition is never met exactly. Instead, use relational operators like < or > for safer loop termination.