diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index 2fcf29825ff..2893250440f 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -66,7 +66,7 @@ import static org.jetbrains.kotlin.builtins.KotlinBuiltIns.isPrimitiveClass; import static org.jetbrains.kotlin.codegen.CodegenUtilKt.isToArrayFromCollection; import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isConstOrHasJvmFieldAnnotation; import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isJvmInterface; -import static org.jetbrains.kotlin.descriptors.annotations.AnnotationUtilKt.isInlineOnlyOrReified; +import static org.jetbrains.kotlin.descriptors.annotations.AnnotationUtilKt.isInlineOnlyOrReifiable; import static org.jetbrains.kotlin.resolve.DescriptorUtils.*; import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.*; import static org.jetbrains.kotlin.types.TypeUtils.isNullableType; @@ -346,7 +346,7 @@ public class AsmUtil { DeclarationDescriptor containingDeclaration = memberDescriptor.getContainingDeclaration(); Visibility memberVisibility = memberDescriptor.getVisibility(); - if (isInlineOnlyOrReified(memberDescriptor)) return ACC_PRIVATE; + if (isInlineOnlyOrReifiable(memberDescriptor)) return ACC_PRIVATE; if (memberVisibility == Visibilities.LOCAL && memberDescriptor instanceof CallableMemberDescriptor) { return ACC_PUBLIC; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 39632678a0a..04b04842c9b 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -24,7 +24,6 @@ import com.intellij.util.containers.ContainerUtil; import kotlin.Unit; import kotlin.collections.CollectionsKt; import kotlin.jvm.functions.Function1; -import kotlin.text.StringsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.backend.common.bridges.Bridge; @@ -82,7 +81,7 @@ import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.*; import static org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings.METHOD_FOR_FUNCTION; import static org.jetbrains.kotlin.descriptors.CallableMemberDescriptor.Kind.DECLARATION; import static org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.*; -import static org.jetbrains.kotlin.descriptors.annotations.AnnotationUtilKt.isInlineOnlyOrReified; +import static org.jetbrains.kotlin.descriptors.annotations.AnnotationUtilKt.isInlineOnlyOrReifiable; import static org.jetbrains.kotlin.resolve.DescriptorToSourceUtils.getSourceFromDescriptor; import static org.jetbrains.kotlin.resolve.DescriptorUtils.*; import static org.jetbrains.kotlin.resolve.jvm.AsmTypes.OBJECT_TYPE; @@ -863,7 +862,7 @@ public class FunctionCodegen { // $default methods are never private to be accessible from other class files (e.g. inner) without the need of synthetic accessors // $default methods are never protected to be accessible from subclass nested classes int visibilityFlag = Visibilities.isPrivate(functionDescriptor.getVisibility()) || - isInlineOnlyOrReified(functionDescriptor) ? + isInlineOnlyOrReifiable(functionDescriptor) ? AsmUtil.NO_FLAG_PACKAGE_PRIVATE : Opcodes.ACC_PUBLIC; int flags = visibilityFlag | getDeprecatedAccessFlag(functionDescriptor) | ACC_SYNTHETIC; if (!(functionDescriptor instanceof ConstructorDescriptor)) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java index 5e0de72dc19..e17c7836bde 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/context/CodegenContext.java @@ -38,7 +38,7 @@ import java.util.*; import static org.jetbrains.kotlin.codegen.AsmUtil.getVisibilityAccessFlag; import static org.jetbrains.kotlin.codegen.JvmCodegenUtil.isJvmInterface; -import static org.jetbrains.kotlin.descriptors.annotations.AnnotationUtilKt.isInlineOnlyOrReified; +import static org.jetbrains.kotlin.descriptors.annotations.AnnotationUtilKt.isInlineOnlyOrReifiable; import static org.jetbrains.org.objectweb.asm.Opcodes.ACC_PRIVATE; import static org.jetbrains.org.objectweb.asm.Opcodes.ACC_PROTECTED; @@ -643,7 +643,7 @@ public abstract class CodegenContext { boolean withinInline, boolean isSuperCall ) { - if (isInlineOnlyOrReified(unwrappedDescriptor)) return false; + if (isInlineOnlyOrReifiable(unwrappedDescriptor)) return false; return isSuperCall && withinInline || (accessFlag & ACC_PRIVATE) != 0 || diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineAnalyzerExtension.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineAnalyzerExtension.kt index 570ecd9cffa..e3a89da0820 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineAnalyzerExtension.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/inline/InlineAnalyzerExtension.kt @@ -17,7 +17,7 @@ package org.jetbrains.kotlin.resolve.inline import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.descriptors.annotations.isInlineOnlyOrReified +import org.jetbrains.kotlin.descriptors.annotations.isInlineOnlyOrReifiable import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* @@ -140,7 +140,7 @@ object InlineAnalyzerExtension : AnalyzerExtensions.AnalyzerExtension { } if (InlineUtil.containsReifiedTypeParameters(functionDescriptor) || - functionDescriptor.isInlineOnlyOrReified() || + functionDescriptor.isInlineOnlyOrReifiable() || functionDescriptor.isHeader) return val reportOn = function.modifierList?.getModifier(KtTokens.INLINE_KEYWORD) ?: function diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/annotationUtil.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/annotationUtil.kt index b16e4f06fe9..13eec840234 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/annotationUtil.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/annotationUtil.kt @@ -70,7 +70,7 @@ private operator fun Collection.get(parameterName: Str private val INLINE_ONLY_ANNOTATION_FQ_NAME = FqName("kotlin.internal.InlineOnly") -fun MemberDescriptor.isInlineOnlyOrReified(): Boolean = +fun MemberDescriptor.isInlineOnlyOrReifiable(): Boolean = this is CallableMemberDescriptor && (isReifiable() || DescriptorUtils.getDirectMember(this).isReifiable() || isInlineOnly()) fun MemberDescriptor.isInlineOnly(): Boolean { diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt index 925a89cbc84..234d5d0f02b 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KFunctionImpl.kt @@ -19,7 +19,7 @@ package kotlin.reflect.jvm.internal import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.descriptors.annotations.isInlineOnlyOrReified +import org.jetbrains.kotlin.descriptors.annotations.isInlineOnlyOrReifiable import java.lang.reflect.Constructor import java.lang.reflect.Member import java.lang.reflect.Method @@ -60,7 +60,7 @@ internal class KFunctionImpl private constructor( private fun isPrivateInBytecode(): Boolean = Visibilities.isPrivate(descriptor.visibility) || - descriptor.isInlineOnlyOrReified() + descriptor.isInlineOnlyOrReifiable() private fun isDeclared(): Boolean = isPrivateInBytecode()