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('.', '/');