From 45b1fe1515a2bc3eb27337db5e74728f86028c67 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 25 Jul 2016 19:41:30 +0200 Subject: [PATCH] IDEA-158416 Deprecated methods are not striked through in implements/override completion --- .../JavaGenerateMemberCompletionContributor.java | 3 +++ .../normal/StrikeOutDeprecatedSuperMethods.java | 9 +++++++++ .../codeInsight/completion/NormalCompletionTest.groovy | 7 +++++++ 3 files changed, 19 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/StrikeOutDeprecatedSuperMethods.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java index 5599b97ee28f..75ecfe3a8178 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java @@ -168,6 +168,9 @@ public class JavaGenerateMemberCompletionContributor { LookupElementBuilder element = LookupElementBuilder.create(prototype, signature).withLookupString(methodName). withLookupString(signature).withLookupString(overrideSignature).withInsertHandler(insertHandler). appendTailText(parameters, false).appendTailText(" {...}", true).withTypeText(typeText).withIcon(icon); + if (prototype.isDeprecated()) { + element = element.setStrikeout(true); + } element.putUserData(GENERATE_ELEMENT, true); return element; } diff --git a/java/java-tests/testData/codeInsight/completion/normal/StrikeOutDeprecatedSuperMethods.java b/java/java-tests/testData/codeInsight/completion/normal/StrikeOutDeprecatedSuperMethods.java new file mode 100644 index 000000000000..8837a3def6aa --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/StrikeOutDeprecatedSuperMethods.java @@ -0,0 +1,9 @@ +class Super { + void foo1() {} + @Deprecated + void foo2() {} +} + +class Sub extends Super { + foo +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index 6e490864fbe4..0257ac73b159 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -1410,6 +1410,13 @@ class XInternalError {} checkResult() } + public void testStrikeOutDeprecatedSuperMethods() { + configure() + myFixture.assertPreferredCompletionItems 0, 'void foo1', 'void foo2' + assert !LookupElementPresentation.renderElement(lookup.items[0]).strikeout + assert LookupElementPresentation.renderElement(lookup.items[1]).strikeout + } + public void testAccessorViaCompletion() { configure()