Java: add synthetic default constructor on resolve (IDEA-376799)

GitOrigin-RevId: 71d783efd5095b0995ac1788863c8a50de759f77
This commit is contained in:
Bas Leijdekkers
2025-09-30 13:02:45 +02:00
committed by intellij-monorepo-bot
parent f0b97cbcd3
commit cd8ada5c65
41 changed files with 271 additions and 253 deletions

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.codeInsight;
import com.intellij.openapi.application.ApplicationManager;
@@ -6,6 +6,7 @@ import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.util.Computable;
import com.intellij.psi.*;
import com.intellij.psi.augment.PsiExtensionMethod;
import com.intellij.psi.impl.light.LightDefaultConstructor;
import com.intellij.psi.impl.light.LightRecordCanonicalConstructor;
import com.intellij.psi.impl.light.LightRecordMember;
import com.intellij.psi.javadoc.PsiDocTag;
@@ -161,6 +162,9 @@ public class JavaTargetElementEvaluator extends TargetElementEvaluatorEx2 implem
if (refElement instanceof LightRecordCanonicalConstructor) {
return ((LightRecordCanonicalConstructor)refElement).getContainingClass();
}
if (refElement instanceof LightDefaultConstructor def) {
return def.getContainingClass();
}
}
return super.adjustReferenceOrReferencedElement(file, editor, offset, flags, refElement);
}

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.siyeh.ig.dependency;
import com.intellij.codeInsight.intention.IntentionAction;
@@ -138,6 +138,7 @@ public final class SuspiciousPackagePrivateAccessInspection extends AbstractBase
}
private void checkPackageLocalAccess(@NotNull UElement sourceNode, PsiJvmMember targetElement, final String accessType) {
if (targetElement instanceof SyntheticElement) return;
PsiElement sourcePsi = sourceNode.getSourcePsi();
if (sourcePsi != null) {
SuspiciousPackagePrivateAccess suspiciousAccess = verifyPackagePrivateAccess(sourcePsi, targetElement);
@@ -164,6 +165,7 @@ public final class SuspiciousPackagePrivateAccessInspection extends AbstractBase
}
private void checkOverridePackageLocal(@NotNull UMethod sourceNode, @NotNull PsiJvmMember targetElement) {
if (targetElement instanceof SyntheticElement) return;
PsiElement sourcePsi = sourceNode.getSourcePsi();
PsiElement nameIdentifier = UElementKt.getSourcePsiElement(sourceNode.getUastAnchor());
if (sourcePsi != null && nameIdentifier != null && targetElement.hasModifier(JvmModifier.PACKAGE_LOCAL)) {