diff --git a/java/java-psi-api/src/com/intellij/psi/util/JavaPsiRecordUtil.java b/java/java-psi-api/src/com/intellij/psi/util/JavaPsiRecordUtil.java
index b2950a3a449d..c2a8f50af657 100644
--- a/java/java-psi-api/src/com/intellij/psi/util/JavaPsiRecordUtil.java
+++ b/java/java-psi-api/src/com/intellij/psi/util/JavaPsiRecordUtil.java
@@ -59,7 +59,7 @@ public class JavaPsiRecordUtil {
* @return true if given method is a canonical (non-compact) constructor for a record class
*/
public static boolean isCanonicalConstructor(@NotNull PsiMethod method) {
- if (!method.isConstructor()) return false;
+ if (!method.isConstructor() || isCompactConstructor(method)) return false;
PsiClass aClass = method.getContainingClass();
if (aClass == null || !aClass.isRecord()) return false;
return hasCanonicalSignature(method, aClass.getRecordComponents());
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordCompactConstructors.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordCompactConstructors.java
index e4afae2ad210..96b28df2ef34 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordCompactConstructors.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlightingRecords/RecordCompactConstructors.java
@@ -12,7 +12,7 @@ record Throws(int x) {
public Throws throws Throwable {}
}
record Generic() {
- public Generic() {}
+ public Generic {}
}
record Delegate(int x) {
public Delegate {