diff --git a/idea/testData/android/lint/apiCheck.kt b/idea/testData/android/lint/apiCheck.kt index 8b118472fa9..e6f3d75ef5b 100644 --- a/idea/testData/android/lint/apiCheck.kt +++ b/idea/testData/android/lint/apiCheck.kt @@ -458,4 +458,22 @@ object O: Activity() { fun test() { getDrawable(0) } +} + +fun testJava8() { + // Error, Api 24, Java8 + mutableListOf(1, 2, 3).removeIf { + true + } + + // Ok, Kotlin + mutableListOf(1, 2, 3).removeAll { + true + } + + // Error, Api 24, Java8 + mapOf(1 to 2).forEach { key, value -> key + value } + + // Ok, Kotlin + mapOf(1 to 2).forEach { (key, value) -> key + value } } \ No newline at end of file diff --git a/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ClassContext.java b/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ClassContext.java index c1b587aec3d..07759bd97dd 100644 --- a/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ClassContext.java +++ b/plugins/lint/lint-api/src/com/android/tools/klint/detector/api/ClassContext.java @@ -696,6 +696,11 @@ public class ClassContext extends Context { return fqcn; } + int index = fqcn.indexOf('<'); + if(index != -1) { + fqcn = fqcn.substring(0, index); + } + // If class name contains $, it's not an ambiguous inner class name. if (fqcn.indexOf('$') != -1) { return fqcn.replace('.', '/');