From de25359a90544c310b7d96d29aa492fb7183d22c Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Wed, 3 Jun 2020 20:20:31 +0300 Subject: [PATCH] Fix stdlib compilation after updated @JvmName check Previously, extension receiver type was not taken into account when checking for @JvmName annotation applicability to possibly mangled functions (such functions, however, were mangled). This bug was fixed, but, unfortunately, not before such functions were added to stdlib ('sumOf' family). --- .../jvmNameOnMangledNames.fir.kt | 5 ++++- .../jvmNameOnMangledNames.kt | 5 ++++- .../jvmNameOnMangledNames.txt | 1 + .../testData/api/stdlib-ir/kotlin-1.kt | 4 ++-- .../testData/api/stdlib-ir/kotlin.reflect.kt | 4 ++-- .../testData/api/stdlib/kotlin-1.kt | 4 ++-- .../testData/api/stdlib/kotlin.reflect.kt | 4 ++-- .../stdlib/common/src/generated/_UArrays.kt | 20 +++++++++++++++++++ .../stdlib/jvm/src/generated/_UArraysJvm.kt | 8 ++++++++ .../src/templates/Aggregates.kt | 3 +++ 10 files changed, 48 insertions(+), 10 deletions(-) diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt index 5e9065090ec..aaf1391ee81 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt @@ -24,4 +24,7 @@ class C { @JvmName("test") fun returnsKotlinResult(a: Result): Result = a -} \ No newline at end of file +} + +@JvmName("extensionFun") +fun Foo.extensionFun() {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt index d97155c6640..b58fac74635 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt @@ -24,4 +24,7 @@ class C { @JvmName("test") fun returnsKotlinResult(a: Result): Result = a -} \ No newline at end of file +} + +@JvmName("extensionFun") +fun Foo.extensionFun() {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.txt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.txt index 3de842e413e..ba26ad1439e 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.txt @@ -4,6 +4,7 @@ package @kotlin.jvm.JvmName(name = "good") public fun baz(/*0*/ r: kotlin.Result): kotlin.Unit @kotlin.jvm.JvmName(name = "test") public fun returnsInlineClass(): Foo @kotlin.jvm.JvmName(name = "test") public fun returnsKotlinResult(/*0*/ a: kotlin.Result): kotlin.Result +@kotlin.jvm.JvmName(name = "extensionFun") public fun Foo.extensionFun(): kotlin.Unit public final class C { public constructor C() diff --git a/js/js.translator/testData/api/stdlib-ir/kotlin-1.kt b/js/js.translator/testData/api/stdlib-ir/kotlin-1.kt index 8759a62e7d6..f4127855b76 100644 --- a/js/js.translator/testData/api/stdlib-ir/kotlin-1.kt +++ b/js/js.translator/testData/api/stdlib-ir/kotlin-1.kt @@ -40,8 +40,8 @@ public open override /*1*/ fun toString(): kotlin.String public companion object Companion { - @kotlin.internal.InlineOnly public final inline fun failure(/*0*/ exception: kotlin.Throwable): kotlin.Result - @kotlin.internal.InlineOnly public final inline fun success(/*0*/ value: T): kotlin.Result + @kotlin.internal.InlineOnly @kotlin.jvm.JvmName(name = "failure") public final inline fun failure(/*0*/ exception: kotlin.Throwable): kotlin.Result + @kotlin.internal.InlineOnly @kotlin.jvm.JvmName(name = "success") public final inline fun success(/*0*/ value: T): kotlin.Result } } diff --git a/js/js.translator/testData/api/stdlib-ir/kotlin.reflect.kt b/js/js.translator/testData/api/stdlib-ir/kotlin.reflect.kt index 3ca1e4e3fa0..9383e3ea614 100644 --- a/js/js.translator/testData/api/stdlib-ir/kotlin.reflect.kt +++ b/js/js.translator/testData/api/stdlib-ir/kotlin.reflect.kt @@ -1,9 +1,9 @@ package kotlin.reflect @kotlin.SinceKotlin(version = "1.3") @kotlin.ExperimentalStdlibApi public inline fun typeOf(): kotlin.reflect.KType -@kotlin.SinceKotlin(version = "1.3") @kotlin.ExperimentalStdlibApi @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.cast(/*0*/ value: kotlin.Any?): T +@kotlin.SinceKotlin(version = "1.4") @kotlin.WasExperimental(markerClass = {kotlin.ExperimentalStdlibApi::class}) @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.cast(/*0*/ value: kotlin.Any?): T @kotlin.reflect.ExperimentalAssociatedObjects public inline fun kotlin.reflect.KClass<*>.findAssociatedObject(): kotlin.Any? -@kotlin.SinceKotlin(version = "1.3") @kotlin.ExperimentalStdlibApi @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.safeCast(/*0*/ value: kotlin.Any?): T? +@kotlin.SinceKotlin(version = "1.4") @kotlin.WasExperimental(markerClass = {kotlin.ExperimentalStdlibApi::class}) @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.safeCast(/*0*/ value: kotlin.Any?): T? @kotlin.reflect.ExperimentalAssociatedObjects @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.ANNOTATION_CLASS}) public final annotation class AssociatedObjectKey : kotlin.Annotation { /*primary*/ public constructor AssociatedObjectKey() diff --git a/js/js.translator/testData/api/stdlib/kotlin-1.kt b/js/js.translator/testData/api/stdlib/kotlin-1.kt index 0a54662316d..c9717b4f088 100644 --- a/js/js.translator/testData/api/stdlib/kotlin-1.kt +++ b/js/js.translator/testData/api/stdlib/kotlin-1.kt @@ -41,8 +41,8 @@ public open override /*1*/ fun toString(): kotlin.String public companion object Companion { - @kotlin.internal.InlineOnly public final inline fun failure(/*0*/ exception: kotlin.Throwable): kotlin.Result - @kotlin.internal.InlineOnly public final inline fun success(/*0*/ value: T): kotlin.Result + @kotlin.internal.InlineOnly @kotlin.jvm.JvmName(name = "failure") public final inline fun failure(/*0*/ exception: kotlin.Throwable): kotlin.Result + @kotlin.internal.InlineOnly @kotlin.jvm.JvmName(name = "success") public final inline fun success(/*0*/ value: T): kotlin.Result } } diff --git a/js/js.translator/testData/api/stdlib/kotlin.reflect.kt b/js/js.translator/testData/api/stdlib/kotlin.reflect.kt index d6e9f823017..071ca0337cb 100644 --- a/js/js.translator/testData/api/stdlib/kotlin.reflect.kt +++ b/js/js.translator/testData/api/stdlib/kotlin.reflect.kt @@ -1,9 +1,9 @@ package kotlin.reflect @kotlin.SinceKotlin(version = "1.3") @kotlin.ExperimentalStdlibApi public inline fun typeOf(): kotlin.reflect.KType -@kotlin.SinceKotlin(version = "1.3") @kotlin.ExperimentalStdlibApi @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.cast(/*0*/ value: kotlin.Any?): T +@kotlin.SinceKotlin(version = "1.4") @kotlin.WasExperimental(markerClass = {kotlin.ExperimentalStdlibApi::class}) @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.cast(/*0*/ value: kotlin.Any?): T @kotlin.reflect.ExperimentalAssociatedObjects public inline fun kotlin.reflect.KClass<*>.findAssociatedObject(): kotlin.Any? -@kotlin.SinceKotlin(version = "1.3") @kotlin.ExperimentalStdlibApi @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.safeCast(/*0*/ value: kotlin.Any?): T? +@kotlin.SinceKotlin(version = "1.4") @kotlin.WasExperimental(markerClass = {kotlin.ExperimentalStdlibApi::class}) @kotlin.internal.LowPriorityInOverloadResolution public fun kotlin.reflect.KClass.safeCast(/*0*/ value: kotlin.Any?): T? @kotlin.reflect.ExperimentalAssociatedObjects @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.ANNOTATION_CLASS}) public final annotation class AssociatedObjectKey : kotlin.Annotation { /*primary*/ public constructor AssociatedObjectKey() diff --git a/libraries/stdlib/common/src/generated/_UArrays.kt b/libraries/stdlib/common/src/generated/_UArrays.kt index 38cf9a26b53..7e61ccd40ed 100644 --- a/libraries/stdlib/common/src/generated/_UArrays.kt +++ b/libraries/stdlib/common/src/generated/_UArrays.kt @@ -9304,6 +9304,7 @@ public inline fun UShortArray.sumByDouble(selector: (UShort) -> Double): Double @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfDouble") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9321,6 +9322,7 @@ public inline fun UIntArray.sumOf(selector: (UInt) -> Double): Double { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfDouble") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9338,6 +9340,7 @@ public inline fun ULongArray.sumOf(selector: (ULong) -> Double): Double { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfDouble") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9355,6 +9358,7 @@ public inline fun UByteArray.sumOf(selector: (UByte) -> Double): Double { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfDouble") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9372,6 +9376,7 @@ public inline fun UShortArray.sumOf(selector: (UShort) -> Double): Double { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9389,6 +9394,7 @@ public inline fun UIntArray.sumOf(selector: (UInt) -> Int): Int { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9406,6 +9412,7 @@ public inline fun ULongArray.sumOf(selector: (ULong) -> Int): Int { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9423,6 +9430,7 @@ public inline fun UByteArray.sumOf(selector: (UByte) -> Int): Int { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9440,6 +9448,7 @@ public inline fun UShortArray.sumOf(selector: (UShort) -> Int): Int { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfLong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9457,6 +9466,7 @@ public inline fun UIntArray.sumOf(selector: (UInt) -> Long): Long { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfLong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9474,6 +9484,7 @@ public inline fun ULongArray.sumOf(selector: (ULong) -> Long): Long { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfLong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9491,6 +9502,7 @@ public inline fun UByteArray.sumOf(selector: (UByte) -> Long): Long { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfLong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9508,6 +9520,7 @@ public inline fun UShortArray.sumOf(selector: (UShort) -> Long): Long { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfUInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9525,6 +9538,7 @@ public inline fun UIntArray.sumOf(selector: (UInt) -> UInt): UInt { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfUInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9542,6 +9556,7 @@ public inline fun ULongArray.sumOf(selector: (ULong) -> UInt): UInt { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfUInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9559,6 +9574,7 @@ public inline fun UByteArray.sumOf(selector: (UByte) -> UInt): UInt { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfUInt") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9576,6 +9592,7 @@ public inline fun UShortArray.sumOf(selector: (UShort) -> UInt): UInt { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfULong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9593,6 +9610,7 @@ public inline fun UIntArray.sumOf(selector: (UInt) -> ULong): ULong { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfULong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9610,6 +9628,7 @@ public inline fun ULongArray.sumOf(selector: (ULong) -> ULong): ULong { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfULong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -9627,6 +9646,7 @@ public inline fun UByteArray.sumOf(selector: (UByte) -> ULong): ULong { @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfULong") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly diff --git a/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt b/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt index f5d2f7aac4c..18b289e1d38 100644 --- a/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt @@ -291,6 +291,7 @@ public fun UShortArray.binarySearch(element: UShort, fromIndex: Int = 0, toIndex @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigDecimal") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -308,6 +309,7 @@ public inline fun UIntArray.sumOf(selector: (UInt) -> java.math.BigDecimal): jav @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigDecimal") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -325,6 +327,7 @@ public inline fun ULongArray.sumOf(selector: (ULong) -> java.math.BigDecimal): j @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigDecimal") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -342,6 +345,7 @@ public inline fun UByteArray.sumOf(selector: (UByte) -> java.math.BigDecimal): j @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigDecimal") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -359,6 +363,7 @@ public inline fun UShortArray.sumOf(selector: (UShort) -> java.math.BigDecimal): @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigInteger") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -376,6 +381,7 @@ public inline fun UIntArray.sumOf(selector: (UInt) -> java.math.BigInteger): jav @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigInteger") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -393,6 +399,7 @@ public inline fun ULongArray.sumOf(selector: (ULong) -> java.math.BigInteger): j @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigInteger") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly @@ -410,6 +417,7 @@ public inline fun UByteArray.sumOf(selector: (UByte) -> java.math.BigInteger): j @SinceKotlin("1.4") @OptIn(kotlin.experimental.ExperimentalTypeInference::class) @OverloadResolutionByLambdaReturnType +@Suppress("INAPPLICABLE_JVM_NAME") @kotlin.jvm.JvmName("sumOfBigInteger") @ExperimentalUnsignedTypes @kotlin.internal.InlineOnly diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt index 44f43c16732..33840d04c1d 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Aggregates.kt @@ -264,6 +264,9 @@ object Aggregates : TemplateGroupBase() { } annotation("@OptIn(kotlin.experimental.ExperimentalTypeInference::class)") annotation("@OverloadResolutionByLambdaReturnType") + specialFor(ArraysOfUnsigned) { + annotation("""@Suppress("INAPPLICABLE_JVM_NAME")""") + } annotation("""@kotlin.jvm.JvmName("sumOf$typeShortName")""") // should not be needed if inline return type is mangled if (selectorType.startsWith("U")) annotation("@ExperimentalUnsignedTypes")