From c6352ec69983c19f1c9c8dd1aeeb2a7aabf6e767 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 5 Mar 2015 21:47:30 +0300 Subject: [PATCH] KT-6920 Reference this marked as deprecated if extension function is deprecated #KT-6920 fixed --- .../idea/highlighter/DeprecatedAnnotationVisitor.java | 5 +++++ idea/testData/highlighter/deprecated/ExtensionFunction.kt | 5 +++++ .../kotlin/idea/highlighter/HighlightingTestGenerated.java | 6 ++++++ 3 files changed, 16 insertions(+) create mode 100644 idea/testData/highlighter/deprecated/ExtensionFunction.kt diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/DeprecatedAnnotationVisitor.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/DeprecatedAnnotationVisitor.java index b6c4267b4db..f8db609aa35 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/DeprecatedAnnotationVisitor.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/DeprecatedAnnotationVisitor.java @@ -63,6 +63,11 @@ public class DeprecatedAnnotationVisitor extends AfterAnalysisHighlightingVisito @Override public void visitReferenceExpression(@NotNull JetReferenceExpression expression) { super.visitReferenceExpression(expression); + + if (expression.getParent() instanceof JetThisExpression) { + return; + } + ResolvedCall resolvedCall = CallUtilPackage.getResolvedCall(expression, bindingContext); if (resolvedCall != null && resolvedCall instanceof VariableAsFunctionResolvedCall) { // Deprecated for invoke() diff --git a/idea/testData/highlighter/deprecated/ExtensionFunction.kt b/idea/testData/highlighter/deprecated/ExtensionFunction.kt new file mode 100644 index 00000000000..7a18153437f --- /dev/null +++ b/idea/testData/highlighter/deprecated/ExtensionFunction.kt @@ -0,0 +1,5 @@ +deprecated("does nothing good") +fun Any.doNothing() = this.toString() // "this" should not be marked as deprecated despite it referes to deprecated function + +// NO_CHECK_INFOS +// NO_CHECK_WEAK_WARNINGS \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java index d3ebc8384ac..c153837c3ef 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java @@ -113,6 +113,12 @@ public class HighlightingTestGenerated extends AbstractHighlightingTest { doTest(fileName); } + @TestMetadata("ExtensionFunction.kt") + public void testExtensionFunction() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/highlighter/deprecated/ExtensionFunction.kt"); + doTest(fileName); + } + @TestMetadata("Function.kt") public void testFunction() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/highlighter/deprecated/Function.kt");