From 9dd69ca785bde92fb71bee1bff41a38be71f4fd7 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 31 Jan 2023 17:27:20 +0100 Subject: [PATCH] Java: don't offer to make interface extending sealed interface 'final' GitOrigin-RevId: f48d5b3e3c6aa3bc1bd45dd8d317a737d78b2e38 --- .../daemon/impl/analysis/HighlightClassUtil.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index aa6b72f58283..42a5ac3e92f9 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.codeInsight.daemon.impl.analysis; import com.intellij.codeInsight.ClassUtil; @@ -1262,10 +1262,12 @@ public final class HighlightClassUtil { IntentionAction markNonSealed = QUICK_FIX_FACTORY.createModifierListFix(inheritorClass, PsiModifier.NON_SEALED, true, false); info.registerFix(markNonSealed, null, null, null, null); boolean hasInheritors = DirectClassInheritorsSearch.search(inheritorClass).findFirst() != null; - IntentionAction action = hasInheritors ? - QUICK_FIX_FACTORY.createSealClassFromPermitsListFix(inheritorClass) : - QUICK_FIX_FACTORY.createModifierListFix(inheritorClass, PsiModifier.FINAL, true, false); - info.registerFix(action, null, null, null, null); + if (!inheritorClass.isInterface() || hasInheritors) { + IntentionAction action = hasInheritors ? + QUICK_FIX_FACTORY.createSealClassFromPermitsListFix(inheritorClass) : + QUICK_FIX_FACTORY.createModifierListFix(inheritorClass, PsiModifier.FINAL, true, false); + info.registerFix(action, null, null, null, null); + } holder.add(info.create()); } }