diff --git a/python/src/com/jetbrains/python/validation/HighlightingAnnotator.java b/python/src/com/jetbrains/python/validation/HighlightingAnnotator.java
index 5e500eefc0d9..c0d23907b955 100644
--- a/python/src/com/jetbrains/python/validation/HighlightingAnnotator.java
+++ b/python/src/com/jetbrains/python/validation/HighlightingAnnotator.java
@@ -19,7 +19,6 @@ import com.intellij.lang.ASTNode;
import com.intellij.lang.annotation.Annotation;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.editor.colors.TextAttributesKey;
-import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import com.jetbrains.python.highlighting.PyHighlighter;
import com.jetbrains.python.psi.*;
@@ -34,8 +33,7 @@ public class HighlightingAnnotator extends PyAnnotator {
public void visitPyParameter(PyParameter node) {
PyFunction function = PsiTreeUtil.getParentOfType(node, PyFunction.class);
if (function != null) {
- final PsiElement anchor = node.hasDefaultValue() ? node.getFirstChild() : node;
- final Annotation annotation = getHolder().createInfoAnnotation(anchor, null);
+ final Annotation annotation = getHolder().createInfoAnnotation(node.getFirstChild(), null);
annotation.setTextAttributes(node.isSelf() ? PyHighlighter.PY_SELF_PARAMETER : PyHighlighter.PY_PARAMETER);
}
}
diff --git a/python/testData/highlighting/annotations.py b/python/testData/highlighting/annotations.py
index 096418ff1cc9..a781f5c8dfe8 100644
--- a/python/testData/highlighting/annotations.py
+++ b/python/testData/highlighting/annotations.py
@@ -2,5 +2,5 @@ TOP_LEVEL: str = 'f
class C:
attr: Optional[Any] = None
- def method(self, xs: List[int]) -> None:
+ def method(self, xs: List[int]) -> None:
pass
diff --git a/python/testData/highlighting/parametersWithAnnotationsAndDefaults.py b/python/testData/highlighting/parametersWithAnnotationsAndDefaults.py
new file mode 100644
index 000000000000..f4fd91821e4b
--- /dev/null
+++ b/python/testData/highlighting/parametersWithAnnotationsAndDefaults.py
@@ -0,0 +1,2 @@
+def f(p1: int, p2: int = 42):
+ print(p1, p2)
\ No newline at end of file
diff --git a/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java b/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java
index 95a1ec9bc223..69952b127f06 100644
--- a/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java
+++ b/python/testSrc/com/jetbrains/python/PythonHighlightingTest.java
@@ -374,6 +374,11 @@ public class PythonHighlightingTest extends PyTestCase {
runWithLanguageLevel(LanguageLevel.PYTHON36, this::doTest);
}
+ // PY-22729
+ public void testParametersWithAnnotationsAndDefaults() {
+ runWithLanguageLevel(LanguageLevel.PYTHON30, this::doTest);
+ }
+
@NotNull
private static EditorColorsScheme createTemporaryColorScheme() {
EditorColorsManager manager = EditorColorsManager.getInstance();