Minor, move isInlineOnlyOrReified to module descriptors

This commit is contained in:
Alexander Udalov
2016-12-15 14:23:59 +03:00
parent b2ccea87f3
commit 3a0100f604
7 changed files with 23 additions and 25 deletions
@@ -17,14 +17,11 @@
package org.jetbrains.kotlin.resolve.annotations
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.MemberDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.constants.ConstantValue
import org.jetbrains.kotlin.resolve.constants.ErrorValue
import org.jetbrains.kotlin.resolve.inline.InlineUtil
private val JVM_STATIC_ANNOTATION_FQ_NAME = FqName("kotlin.jvm.JvmStatic")
@@ -54,17 +51,3 @@ fun AnnotationDescriptor.argumentValue(parameterName: String): Any? {
return constant.value
}
private val INLINE_ONLY_ANNOTATION_FQ_NAME = FqName("kotlin.internal.InlineOnly")
fun MemberDescriptor.isInlineOnlyOrReified(): Boolean {
if (this !is FunctionDescriptor) return false
return typeParameters.any { it.isReified } || hasInlineOnlyAnnotation()
}
fun MemberDescriptor.hasInlineOnlyAnnotation(): Boolean {
if (this !is FunctionDescriptor) return false
return annotations.hasAnnotation(INLINE_ONLY_ANNOTATION_FQ_NAME) && InlineUtil.isInline(this).apply {
assert(this) { "Function is not inline: ${this@hasInlineOnlyAnnotation}"; }
}
}
@@ -17,13 +17,13 @@
package org.jetbrains.kotlin.resolve.inline
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.isInlineOnlyOrReified
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.AnalyzerExtensions
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.BindingTrace
import org.jetbrains.kotlin.resolve.annotations.isInlineOnlyOrReified
import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue
object InlineAnalyzerExtension : AnalyzerExtensions.AnalyzerExtension {