mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] mpp: do not suggest "generate equals & hashCode() by identity" for non-jvm platform
^KTIJ-12351 Fixed GitOrigin-RevId: 55bb1d90845344020c8a96bca735b5eaf700e06b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
eaa5126132
commit
0636ca2f11
+10
-2
@@ -8,11 +8,14 @@ import com.intellij.psi.PsiElementVisitor
|
||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny
|
||||
import org.jetbrains.kotlin.idea.core.getModalityFromDescriptor
|
||||
import org.jetbrains.kotlin.idea.project.platform
|
||||
import org.jetbrains.kotlin.idea.quickfix.sealedSubClassToObject.ConvertSealedSubClassToObjectFix
|
||||
import org.jetbrains.kotlin.idea.quickfix.sealedSubClassToObject.GenerateIdentityEqualsFix
|
||||
import org.jetbrains.kotlin.idea.refactoring.isAbstract
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.idea.util.module
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
|
||||
@@ -23,12 +26,17 @@ class CanSealedSubClassBeObjectInspection : AbstractKotlinInspection() {
|
||||
|
||||
fun reportPossibleObject(klass: KtClass) {
|
||||
val keyword = klass.getClassOrInterfaceKeyword() ?: return
|
||||
val fixes = if (klass.module?.platform?.isJvm() == true) {
|
||||
arrayOf(ConvertSealedSubClassToObjectFix(), GenerateIdentityEqualsFix())
|
||||
} else {
|
||||
arrayOf(ConvertSealedSubClassToObjectFix())
|
||||
}
|
||||
|
||||
holder.registerProblem(
|
||||
keyword,
|
||||
KotlinBundle.message("sealed.sub.class.has.no.state.and.no.overridden.equals"),
|
||||
ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
|
||||
ConvertSealedSubClassToObjectFix(),
|
||||
GenerateIdentityEqualsFix()
|
||||
*fixes,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+5
@@ -1031,6 +1031,11 @@ public abstract class QuickFixMultiModuleTestGenerated extends AbstractQuickFixM
|
||||
runTest("testData/multiModuleQuickFix/other/functionTypeReceiverToParameterByImpl/");
|
||||
}
|
||||
|
||||
@TestMetadata("generateEqualsAndHashCodeForSealedInCommon")
|
||||
public void testGenerateEqualsAndHashCodeForSealedInCommon() throws Exception {
|
||||
runTest("testData/multiModuleQuickFix/other/generateEqualsAndHashCodeForSealedInCommon/");
|
||||
}
|
||||
|
||||
@TestMetadata("generateEqualsInExpect")
|
||||
public void testGenerateEqualsInExpect() throws Exception {
|
||||
runTest("testData/multiModuleQuickFix/other/generateEqualsInExpect/");
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Generate equals & hashCode by identity" "false"
|
||||
// TOOL: org.jetbrains.kotlin.idea.inspections.CanSealedSubClassBeObjectInspection
|
||||
// ACTION: Convert sealed sub-class to object
|
||||
// ACTION: Create test
|
||||
// ACTION: Make internal
|
||||
// ACTION: Make private
|
||||
|
||||
sealed class Parent
|
||||
cla<caret>ss Child : Parent()
|
||||
Reference in New Issue
Block a user