Skip to content

fix: address false negatives in Java/Kotlin patterns#23

Merged
avifenesh merged 1 commit intomainfrom
fix/java-kotlin-false-negatives
Feb 25, 2026
Merged

fix: address false negatives in Java/Kotlin patterns#23
avifenesh merged 1 commit intomainfrom
fix/java-kotlin-false-negatives

Conversation

@avifenesh
Copy link
Contributor

Summary

Follow-up to #21 and #22. A 5-agent team tested all Java/Kotlin patterns against 6 real-world repos (1955 files) hunting for false negatives - code that IS slop but wasn't caught.

Pattern improvements (7)

Pattern Change Why
java_sysout_debugging Add printf, format, write, append Only caught print/println
java_suppress_warnings Add array {...} and value= forms Only caught simple string form
java_raw_type Add HashMap, ArrayList, TreeMap, LinkedList, ConcurrentHashMap, Vector, Stack, etc. Only caught interface types
kotlin_println_debugging Also catch print() without ln print() is equally debug output
kotlin_swallowed_error Catch getOrDefault(null) and getOrElse { null } Same swallowed-error semantics as getOrNull()
kotlin_suppress_annotation Catch multi-value @Suppress("A", "B") and @file:Suppress Only caught single-value declaration-level

New pattern (1)

Pattern What it catches Found in
kotlin_android_debug_log Log.d/v/i() Android logging 6 instances in nowinandroid

Test repos used

Repo Type Files
spring-petclinic Java corporate 47
spring-authorization-server Java corporate 468
nowinandroid Kotlin mobile 351
Pokedex Kotlin mobile 66
gson Java lib 261
Exposed Kotlin lib 762

Test plan

Depends on #22

Tested against 6 real-world repos (1955 files) with a 5-agent team.

Pattern improvements:
- java_sysout_debugging: add printf, format, write, append variants
- java_suppress_warnings: add array syntax and value= form
- java_raw_type: add HashMap, ArrayList, TreeMap, LinkedList,
  ConcurrentHashMap, Vector, Stack, HashSet, LinkedHashSet, etc.
- kotlin_println_debugging: also catch print() without ln
- kotlin_swallowed_error: catch getOrDefault(null), getOrElse{null}
- kotlin_suppress_annotation: catch multi-value and @file:Suppress

New pattern:
- kotlin_android_debug_log: catch Log.d/v/i() Android debug logging

Total: 7 patterns improved, 1 new pattern added.
@avifenesh avifenesh force-pushed the fix/java-kotlin-false-negatives branch from 31fecb7 to e1af5cc Compare February 25, 2026 23:54
@avifenesh avifenesh merged commit 9c7e284 into main Feb 25, 2026
2 checks passed
@avifenesh avifenesh deleted the fix/java-kotlin-false-negatives branch February 25, 2026 23:54
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