From ca124d1e369b22415aba71b922be3304da04f1ab Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Wed, 24 May 2017 19:15:15 +0300 Subject: [PATCH] Remove Android api diagnostic error on Kotlin interface default methods They don't require java 8 or any other special support to work on Android #KT-18059 Fixed --- idea/testData/android/lint/apiCheck.kt | 7 +++++++ .../tools/klint/checks/ApiDetector.java | 18 ------------------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/idea/testData/android/lint/apiCheck.kt b/idea/testData/android/lint/apiCheck.kt index e6f3d75ef5b..d6a4844ca6f 100644 --- a/idea/testData/android/lint/apiCheck.kt +++ b/idea/testData/android/lint/apiCheck.kt @@ -476,4 +476,11 @@ fun testJava8() { // Ok, Kotlin mapOf(1 to 2).forEach { (key, value) -> key + value } +} + +interface WithDefault { + // Should be ok + fun methodWithBody() { + return + } } \ No newline at end of file diff --git a/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java b/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java index 81531cf8519..29a03d0c863 100644 --- a/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java +++ b/plugins/lint/lint-checks/src/com/android/tools/klint/checks/ApiDetector.java @@ -982,24 +982,6 @@ public class ApiDetector extends ResourceXmlDetector mContext.report(UNSUPPORTED, location, message); } - @Override - public boolean visitMethod(@NotNull UMethod method) { - // API check for default methods - if (method.getModifierList().hasExplicitModifier(PsiModifier.DEFAULT)) { - int api = 24; // minSdk for default methods - int minSdk = getMinSdk(mContext); - - if (!isSuppressed(api, method, minSdk, mContext, UNSUPPORTED)) { - Location location = mContext.getLocation(method); - String message = String.format("Default method requires API level %1$d " - + "(current min is %2$d)", api, minSdk); - mContext.reportUast(UNSUPPORTED, method, location, message); - } - } - - return super.visitMethod(method); - } - @Override public boolean visitClass(@NotNull UClass aClass) { // Check for repeatable annotations