.llms/rules/ACR_api_level_compatibility.md
Severity: HIGH — D93795294 fixed build failure; related SEV S311353 was production crash
.stream(), .parallelStream(), .collect()computeIfAbsent(), putIfAbsent(), getOrDefault(), forEach()Comparator.naturalOrder(), Comparator.reverseOrder()Stream.of(), Collectors.toList()minSdkVersion < 24@RequiresApi or @TargetApi annotation with version guardif (Build.VERSION.SDK_INT >= 24) blocks@RequiresApi(24) annotation AND version guard.map {}, .filter {})// BAD — parallelStream requires API 24+
items.parallelStream()
.map { transform(it) }
.collect(Collectors.toList()) // ❌ Crashes on API 21-23
// GOOD — Kotlin stdlib works on all API levels
items.map { transform(it) } // ✅ Safe
// BAD — naturalOrder requires API 24+
Queue<Long> heap = new PriorityQueue<>(Comparator.naturalOrder()); // ❌
// GOOD — Custom comparator works on all APIs
Queue<Long> heap = new PriorityQueue<>(capacity,
(t1, t2) -> Long.compare(t1, t2)); // ✅ Safe
For Fresco (minSdk 21):
.stream() or .parallelStream()Comparator.naturalOrder() or reverseOrder()map, filter) or manual loopsparallelStream() in iterativeBlurBoxFilter.kt broke gradle buildComparator.naturalOrder() (API 24+)