From 22ddfed91144f2ffe9f1ea21f524e79df791bd03 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 17 Jan 2017 17:47:27 +0300 Subject: [PATCH] Do not load PlatformDependent annotated built-in members with lv=1.0 #KT-15780 Fixed --- .../testsWithJava8/targetedBuiltIns/unsupportedFeature.kt | 2 ++ .../src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt | 2 ++ 2 files changed, 4 insertions(+) diff --git a/compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns/unsupportedFeature.kt b/compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns/unsupportedFeature.kt index 2d37d90c86c..34566c1aa42 100644 --- a/compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns/unsupportedFeature.kt +++ b/compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns/unsupportedFeature.kt @@ -20,6 +20,8 @@ fun foo(x: List, y: Throwable) { y.fillInStackTrace() checkType { _() } + HashMap().getOrDefault(Any(), null) + // Falls back to extension in stdlib y.printStackTrace() } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt index fa88fb743bc..dea92df9fa0 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmBuiltInsSettings.kt @@ -333,6 +333,8 @@ open class JvmBuiltInsSettings( override fun isFunctionAvailable(classDescriptor: DeserializedClassDescriptor, functionDescriptor: SimpleFunctionDescriptor): Boolean { if (!functionDescriptor.annotations.hasAnnotation(PLATFORM_DEPENDENT_ANNOTATION_FQ_NAME)) return true + if (!isAdditionalBuiltInsFeatureSupported) return false + val javaAnalogueClassDescriptor = classDescriptor.getJavaAnalogue() ?: return true val jvmDescriptor = functionDescriptor.computeJvmDescriptor()