Don't generate reified inline function as privates

#KT-18563 Fixed
This commit is contained in:
Mikhael Bogdanov
2017-09-04 11:06:05 +02:00
parent 99284316d6
commit 56859f7b87
7 changed files with 22 additions and 12 deletions
@@ -69,11 +69,13 @@ private val REPLACE_WITH_IMPORTS_NAME = Name.identifier("imports")
private val INLINE_ONLY_ANNOTATION_FQ_NAME = FqName("kotlin.internal.InlineOnly")
fun MemberDescriptor.isInlineOnlyOrReifiable(): Boolean =
this is CallableMemberDescriptor && (isReifiable() || DescriptorUtils.getDirectMember(this).isReifiable() || isInlineOnly())
fun MemberDescriptor.isInlineOnlyOrReifiable(checkInlineOnly: Boolean = true): Boolean =
this is CallableMemberDescriptor &&
(isReifiable() || DescriptorUtils.getDirectMember(this).isReifiable() || (checkInlineOnly && isInlineOnly()))
fun MemberDescriptor.isEffectivelyInlineOnly(): Boolean =
isInlineOnlyOrReifiable() || safeAs<FunctionDescriptor>()?.let { it.isSuspend && it.isInline } == true
@JvmOverloads
fun MemberDescriptor.isEffectivelyInlineOnly(checkInlineOnly: Boolean = true): Boolean =
isInlineOnlyOrReifiable(checkInlineOnly) || safeAs<FunctionDescriptor>()?.let { it.isSuspend && it.isInline } == true
fun MemberDescriptor.isInlineOnly(): Boolean {
if (this !is FunctionDescriptor ||