From 0bf7dc3e0cfdda1255a8d7958af6526b917d73e6 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Thu, 14 Sep 2017 19:39:39 +0300 Subject: [PATCH] Refactoring. Replace `hasModifier(IMPL_KEYWORD)` to hasImplModifier() --- .../frontend/src/org/jetbrains/kotlin/psi/psiUtil/psiUtils.kt | 4 ++++ .../src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt | 3 ++- .../src/org/jetbrains/kotlin/resolve/DescriptorResolver.java | 4 ++-- .../jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt | 3 ++- .../kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt | 4 ++-- .../kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java | 2 +- .../resolve/lazy/descriptors/LazyTypeAliasDescriptor.kt | 4 ++-- .../idea/highlighter/markers/KotlinLineMarkerProvider.kt | 3 ++- .../kotlin/idea/inspections/UnusedSymbolInspection.kt | 2 +- 9 files changed, 18 insertions(+), 11 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/psiUtils.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/psiUtils.kt index 00a5e7fd45d..3bed53df4dc 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/psiUtils.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/psiUtil/psiUtils.kt @@ -385,3 +385,7 @@ inline fun PsiElement.getLastParentOfTypeInRow() = pare fun KtModifierListOwner.hasHeaderModifier() = hasModifier(KtTokens.HEADER_KEYWORD) fun KtModifierList.hasHeaderModifier() = hasModifier(KtTokens.HEADER_KEYWORD) + +fun KtModifierListOwner.hasImplModifier() = hasModifier(KtTokens.IMPL_KEYWORD) +fun KtModifierList.hasImplModifier() = hasModifier(KtTokens.IMPL_KEYWORD) + diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt index 86a70ef77b5..96f057382e3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.diagnostics.Errors.* import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.hasImplModifier import org.jetbrains.kotlin.psi.psiUtil.visibilityModifier import org.jetbrains.kotlin.resolve.BindingContext.* import org.jetbrains.kotlin.resolve.DescriptorUtils.classCanHaveAbstractMembers @@ -165,7 +166,7 @@ class DeclarationsChecker( } } - if (declaration.hasModifier(KtTokens.IMPL_KEYWORD)) { + if (declaration.hasImplModifier()) { checkImplTypeAlias(declaration, typeAliasDescriptor) } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java index e44f717609f..d4fe68ca01c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DescriptorResolver.java @@ -876,7 +876,7 @@ public class DescriptorResolver { modifierList != null && modifierList.hasModifier(KtTokens.CONST_KEYWORD), modifierList != null && PsiUtilsKt.hasHeaderModifier(modifierList) && container instanceof PackageFragmentDescriptor || container instanceof ClassDescriptor && ((ClassDescriptor) container).isHeader(), - modifierList != null && modifierList.hasModifier(KtTokens.IMPL_KEYWORD), + modifierList != null && PsiUtilsKt.hasImplModifier(modifierList), modifierList != null && modifierList.hasModifier(KtTokens.EXTERNAL_KEYWORD), propertyInfo.getHasDelegate() ); @@ -1202,7 +1202,7 @@ public class DescriptorResolver { false, false, classDescriptor.isHeader(), - modifierList != null && modifierList.hasModifier(KtTokens.IMPL_KEYWORD), + modifierList != null && PsiUtilsKt.hasImplModifier(modifierList), false, false ); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt index aea96b9402c..c186ceca707 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt @@ -34,6 +34,7 @@ import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.hasHeaderModifier +import org.jetbrains.kotlin.psi.psiUtil.hasImplModifier import org.jetbrains.kotlin.resolve.DescriptorResolver.getDefaultModality import org.jetbrains.kotlin.resolve.DescriptorResolver.getDefaultVisibility import org.jetbrains.kotlin.resolve.DescriptorUtils.getDispatchReceiverParameterIfNeeded @@ -185,7 +186,7 @@ class FunctionDescriptorResolver( functionDescriptor.isSuspend = function.hasModifier(KtTokens.SUSPEND_KEYWORD) functionDescriptor.isHeader = container is PackageFragmentDescriptor && function.hasHeaderModifier() || container is ClassDescriptor && container.isHeader - functionDescriptor.isImpl = function.hasModifier(KtTokens.IMPL_KEYWORD) + functionDescriptor.isImpl = function.hasImplModifier() receiverType?.let { ForceResolveUtil.forceResolveAllContents(it.annotations) } for (valueParameterDescriptor in valueParameterDescriptors) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt index eec0746fc34..670bfbb3f21 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/HeaderImplDeclarationChecker.kt @@ -24,11 +24,11 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.diagnostics.DiagnosticSink import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.incremental.components.NoLookupLocation -import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtConstructor import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtElement +import org.jetbrains.kotlin.psi.psiUtil.hasImplModifier import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.DescriptorUtils @@ -127,7 +127,7 @@ object HeaderImplDeclarationChecker : DeclarationChecker { // TODO: use common module here val compatibility = findHeaderForImpl(descriptor, descriptor.module) ?: return - val hasImplModifier = descriptor.isImpl && reportOn.hasModifier(KtTokens.IMPL_KEYWORD) + val hasImplModifier = descriptor.isImpl && reportOn.hasImplModifier() if (!hasImplModifier) { if (Compatible !in compatibility) return diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java index de102f574d0..b2fa086ddd5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -166,7 +166,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes this.isInner = modifierList != null && modifierList.hasModifier(INNER_KEYWORD) && !isIllegalInner(this); this.isData = modifierList != null && modifierList.hasModifier(KtTokens.DATA_KEYWORD); - this.isImpl = modifierList != null && modifierList.hasModifier(KtTokens.IMPL_KEYWORD); + this.isImpl = modifierList != null && PsiUtilsKt.hasImplModifier(modifierList); this.isHeader = modifierList != null && PsiUtilsKt.hasHeaderModifier(modifierList) || containingDeclaration instanceof ClassDescriptor && ((ClassDescriptor) containingDeclaration).isHeader(); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyTypeAliasDescriptor.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyTypeAliasDescriptor.kt index 1b6206a8d8d..b45dd5fed61 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyTypeAliasDescriptor.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyTypeAliasDescriptor.kt @@ -20,9 +20,9 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.descriptors.impl.AbstractTypeAliasDescriptor import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor -import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtTypeAlias +import org.jetbrains.kotlin.psi.psiUtil.hasImplModifier import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.source.getPsi import org.jetbrains.kotlin.storage.NotNullLazyValue @@ -49,7 +49,7 @@ class LazyTypeAliasDescriptor( private lateinit var expandedTypeImpl: NotNullLazyValue private lateinit var defaultTypeImpl: NotNullLazyValue private lateinit var classDescriptorImpl: NullableLazyValue - private val isImpl = (source.getPsi() as? KtTypeAlias)?.hasModifier(KtTokens.IMPL_KEYWORD) == true + private val isImpl = (source.getPsi() as? KtTypeAlias)?.hasImplModifier() == true override val underlyingType: SimpleType get() = underlyingTypeImpl() override val expandedType: SimpleType get() = expandedTypeImpl() diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt index 6a2a2e596ca..5beeea18a10 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/markers/KotlinLineMarkerProvider.kt @@ -49,6 +49,7 @@ import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.hasHeaderModifier +import org.jetbrains.kotlin.psi.psiUtil.hasImplModifier import java.awt.event.MouseEvent import java.util.* import javax.swing.Icon @@ -102,7 +103,7 @@ class KotlinLineMarkerProvider : LineMarkerProvider { if (element.hasHeaderModifier()) { collectImplementationMarkers(element, result) } - else if (element.hasModifier(KtTokens.IMPL_KEYWORD)) { + else if (element.hasImplModifier()) { collectHeaderMarkers(element, result) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt index 1e17c3ee79b..d31f3de5f21 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt @@ -326,7 +326,7 @@ class UnusedSymbolInspection : AbstractKotlinInspection() { } private fun isPlatformImplementation(declaration: KtNamedDeclaration) = - declaration.hasModifier(KtTokens.IMPL_KEYWORD) + declaration.hasImplModifier() private fun hasPlatformImplementations(declaration: KtNamedDeclaration, descriptor: DeclarationDescriptor?): Boolean { if (!declaration.hasHeaderModifier()) return false