Hide java.lang.CharSequence::isEmpty from Kotlin built-in class

Also, prohibit using it as a synthetic property

^KT-42467 In progress
This commit is contained in:
Denis Zharkov
2020-10-06 17:12:23 +03:00
parent 90044f9672
commit 5cc12b49fc
3 changed files with 7 additions and 2 deletions
@@ -162,6 +162,7 @@ class JavaSyntheticPropertiesScope(storageManager: StorageManager, private val l
return descriptor.valueParameters.isEmpty()
&& descriptor.typeParameters.isEmpty()
&& descriptor.visibility.isVisibleOutside()
&& !descriptor.isHiddenForResolutionEverywhereBesideSupercalls
}
private fun isGoodSetMethod(descriptor: FunctionDescriptor, getMethod: FunctionDescriptor): Boolean {
@@ -178,6 +179,7 @@ class JavaSyntheticPropertiesScope(storageManager: StorageManager, private val l
return parameter.varargElementType == null
&& descriptor.typeParameters.isEmpty()
&& descriptor.visibility.isVisibleOutside()
&& !descriptor.isHiddenForResolutionEverywhereBesideSupercalls
}
private fun FunctionDescriptor.findOverridden(condition: (FunctionDescriptor) -> Boolean): FunctionDescriptor? {
@@ -76,6 +76,7 @@ class AdditionalBuiltInsMembersSignatureListsTest : KotlinTestWithEnvironment()
}
private val LATE_JDK_SIGNATURES = mapOf(
"java/lang/String" to setOf("isBlank()Z", "lines()Ljava/util/stream/Stream;", "repeat(I)Ljava/lang/String;")
"java/lang/String" to setOf("isBlank()Z", "lines()Ljava/util/stream/Stream;", "repeat(I)Ljava/lang/String;"),
"java/lang/CharSequence" to setOf("isEmpty()Z"),
)
}
@@ -51,7 +51,9 @@ object JvmBuiltInsSignatures {
inJavaLang("Double", "isInfinite()Z", "isNaN()Z") +
inJavaLang("Float", "isInfinite()Z", "isNaN()Z") +
inJavaLang("Enum", "getDeclaringClass()Ljava/lang/Class;", "finalize()V")
inJavaLang("Enum", "getDeclaringClass()Ljava/lang/Class;", "finalize()V") +
inJavaLang("CharSequence", "isEmpty()Z")
}
private fun buildPrimitiveValueMethodsSet(): Set<String> =