Rename isHeader to isExpect in descriptors

This commit is contained in:
Stanislav Erokhin
2017-09-14 20:46:40 +03:00
committed by Mikhail Glukhikh
parent fd6eab38e5
commit c8ee424f67
61 changed files with 135 additions and 137 deletions
@@ -56,7 +56,7 @@ val ModuleDescriptor.allImplementingCompatibleModules
class PlatformHeaderAnnotator : Annotator {
override fun annotate(element: PsiElement, holder: AnnotationHolder) {
val declaration = element as? KtDeclaration ?: return
if (!isHeaderDeclaration(declaration)) return
if (!isExpectDeclaration(declaration)) return
if (TargetPlatformDetector.getPlatform(declaration.containingKtFile) !is TargetPlatform.Common) return
@@ -64,7 +64,7 @@ class PlatformHeaderAnnotator : Annotator {
if (implementingModules.isEmpty()) return
val descriptor = declaration.toDescriptor() as? MemberDescriptor ?: return
if (!descriptor.isHeader) return
if (!descriptor.isExpect) return
val trace = BindingTraceContext()
for (module in implementingModules) {
@@ -80,7 +80,7 @@ class PlatformHeaderAnnotator : Annotator {
KotlinPsiChecker().annotateElement(declaration, holder, SimpleDiagnostics(filteredList))
}
private fun isHeaderDeclaration(declaration: KtDeclaration): Boolean {
private fun isExpectDeclaration(declaration: KtDeclaration): Boolean {
return declaration.hasExpectModifier() ||
declaration is KtClassOrObject && KtPsiUtil.getOutermostClassOrObject(declaration)?.hasExpectModifier() == true
}
@@ -148,7 +148,7 @@ private val OVERRIDE_RENDERER = DescriptorRenderer.withOptions {
private fun PropertyDescriptor.wrap(): PropertyDescriptor {
val delegate = copy(containingDeclaration, Modality.OPEN, visibility, kind, true) as PropertyDescriptor
val newDescriptor = object : PropertyDescriptor by delegate {
override fun isHeader() = false
override fun isExpect() = false
}
newDescriptor.setSingleOverridden(this)
return newDescriptor
@@ -156,7 +156,7 @@ private fun PropertyDescriptor.wrap(): PropertyDescriptor {
private fun FunctionDescriptor.wrap(): FunctionDescriptor {
return object : FunctionDescriptor by this {
override fun isHeader() = false
override fun isExpect() = false
override fun getModality() = Modality.OPEN
override fun getReturnType() = this@wrap.returnType?.approximateFlexibleTypes(preferNotNull = true, preferStarForRaw = true)
override fun getOverriddenDescriptors() = listOf(this@wrap)
@@ -46,14 +46,14 @@ class KotlinMultiplatformJUnitRecognizer : JUnitRecognizer() {
val bindingContext = origin.analyze(BodyResolveMode.PARTIAL)
val methodDescriptor = bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, origin] ?: return false
return methodDescriptor.annotations.getAllAnnotations().any { it.isHeaderOfAnnotation("org.junit.Test", implModules) }
return methodDescriptor.annotations.getAllAnnotations().any { it.isExpectOfAnnotation("org.junit.Test", implModules) }
}
}
private fun AnnotationWithTarget.isHeaderOfAnnotation(fqName: String, implModules: Collection<ModuleDescriptor>): Boolean {
private fun AnnotationWithTarget.isExpectOfAnnotation(fqName: String, implModules: Collection<ModuleDescriptor>): Boolean {
val annotationClass = annotation.type.constructor.declarationDescriptor as? ClassifierDescriptorWithTypeParameters ?: return false
if (!annotationClass.isHeader) return false
if (!annotationClass.isExpect) return false
return implModules
.any { module ->
@@ -65,13 +65,13 @@ internal fun KtDeclaration.headerDeclarationIfAny(): KtDeclaration? {
return DescriptorToSourceUtils.descriptorToDeclaration(headerDescriptor) as? KtDeclaration
}
internal fun KtDeclaration.isHeaderOrHeaderClassMember() =
internal fun KtDeclaration.isExpectOrExpectClassMember() =
hasExpectModifier() || (containingClassOrObject?.hasExpectModifier() ?: false)
internal fun DeclarationDescriptor.liftToHeader(): DeclarationDescriptor? {
if (this is MemberDescriptor) {
return when {
isHeader -> this
isExpect -> this
isImpl -> headerDescriptor()
else -> null
}
@@ -72,7 +72,7 @@ fun navigateToPlatformImplementation(e: MouseEvent?, declaration: KtDeclaration)
private fun DeclarationDescriptor.headerImplementations(): Collection<DeclarationDescriptor> {
if (this is MemberDescriptor) {
if (!this.isHeader) return emptyList()
if (!this.isExpect) return emptyList()
return module.allImplementingCompatibleModules.flatMap { it.implementationsOf(this) }
}
@@ -38,7 +38,7 @@ abstract class AbstractAddAccessorsIntention(
return null
}
val descriptor = element.resolveToDescriptorIfAny() as? CallableMemberDescriptor ?: return null
if (descriptor.isHeader) return null
if (descriptor.isExpect) return null
if (addSetter && (!element.isVar || element.setter != null)) return null
if (addGetter && element.getter != null) return null
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor
import org.jetbrains.kotlin.idea.core.*
import org.jetbrains.kotlin.idea.highlighter.markers.headerImplementations
import org.jetbrains.kotlin.idea.highlighter.markers.isHeaderOrHeaderClassMember
import org.jetbrains.kotlin.idea.highlighter.markers.isExpectOrExpectClassMember
import org.jetbrains.kotlin.idea.highlighter.markers.liftToHeader
import org.jetbrains.kotlin.idea.intentions.SelfTargetingRangeIntention
import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.getReturnTypeReference
@@ -111,7 +111,7 @@ class ConvertMemberToExtensionIntention : SelfTargetingRangeIntention<KtCallable
val descriptor = element.unsafeResolveToDescriptor()
val containingClass = descriptor.containingDeclaration as ClassDescriptor
val isEffectiveHeader = allowHeader && element.isHeaderOrHeaderClassMember()
val isEffectiveHeader = allowHeader && element.isExpectOrExpectClassMember()
val file = element.containingKtFile
val project = file.project
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.core.getDeepestSuperDeclarations
import org.jetbrains.kotlin.idea.core.getDirectlyOverriddenDeclarations
import org.jetbrains.kotlin.idea.highlighter.markers.headerImplementations
import org.jetbrains.kotlin.idea.highlighter.markers.isHeaderOrHeaderClassMember
import org.jetbrains.kotlin.idea.highlighter.markers.isExpectOrExpectClassMember
import org.jetbrains.kotlin.idea.highlighter.markers.liftToHeader
import org.jetbrains.kotlin.idea.util.getResolutionScope
import org.jetbrains.kotlin.psi.KtBlockExpression
@@ -184,7 +184,7 @@ abstract class CallableRefactoring<out T: CallableDescriptor>(
fun getAffectedCallables(project: Project, descriptorsForChange: Collection<CallableDescriptor>): List<PsiElement> {
val baseCallables = descriptorsForChange.mapNotNull { DescriptorToSourceUtilsIde.getAnyDeclaration(project, it) }
return baseCallables + baseCallables.flatMapTo(HashSet<PsiElement>()) { callable ->
if (callable is KtDeclaration && callable.isHeaderOrHeaderClassMember()) {
if (callable is KtDeclaration && callable.isExpectOrExpectClassMember()) {
callable.headerImplementations()
}
else {
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor
import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.highlighter.markers.headerImplementations
import org.jetbrains.kotlin.idea.highlighter.markers.isHeaderOrHeaderClassMember
import org.jetbrains.kotlin.idea.highlighter.markers.isExpectOrExpectClassMember
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.KotlinCallableDefinitionUsage
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.psi.*
@@ -98,7 +98,7 @@ class KotlinChangeSignatureData(
primaryCallables + primaryCallables.flatMapTo(HashSet<UsageInfo>()) { primaryFunction ->
val primaryDeclaration = primaryFunction.declaration as? KtDeclaration ?: return@flatMapTo emptyList()
if (primaryDeclaration.isHeaderOrHeaderClassMember()) {
if (primaryDeclaration.isExpectOrExpectClassMember()) {
return@flatMapTo primaryDeclaration.headerImplementations().mapNotNull {
val descriptor = it.unsafeResolveToDescriptor()
val callableDescriptor = when (descriptor) {