java: error message for wrong record constructor reference in another class

GitOrigin-RevId: 335157be832b59e0b7d63a9fa8a42fddc91153af
This commit is contained in:
Anna Kozlova
2020-02-10 20:53:15 +01:00
committed by intellij-monorepo-bot
parent 5376e6e8c9
commit 46ed99082c
2 changed files with 8 additions and 2 deletions

View File

@@ -477,13 +477,13 @@ public class HighlightMethodUtil {
PsiMethod resolvedMethod = candidateInfo.getElement();
PsiSubstitutor substitutor = candidateInfo.getSubstitutor();
String methodName = HighlightMessageUtil.getSymbolName(resolvedMethod, substitutor);
PsiElement parent = resolvedMethod.getParent();
PsiClass parent = resolvedMethod.getContainingClass();
String containerName = parent == null ? "" : HighlightMessageUtil.getSymbolName(parent, substitutor);
String argTypes = buildArgTypesList(list);
String description = JavaErrorBundle.message("wrong.method.arguments", methodName, containerName, argTypes);
String toolTip = null;
List<PsiExpression> mismatchedExpressions;
if (parent instanceof PsiClass) {
if (parent != null) {
final PsiExpression[] expressions = list.getExpressions();
final PsiParameter[] parameters = resolvedMethod.getParameterList().getParameters();
mismatchedExpressions = mismatchedArgs(expressions, substitutor, parameters, candidateInfo.isVarargs());

View File

@@ -57,6 +57,12 @@ record ImplicitCanonicalConstructor(String s) {
static void test() {
new ImplicitCanonicalConstructor("Asdasd");
}
static class UsageInAnotherClass {
static void test() {
new ImplicitCanonicalConstructor<error descr="'ImplicitCanonicalConstructor(java.lang.String)' in 'ImplicitCanonicalConstructor' cannot be applied to '(int)'">(1)</error>;
}
}
}
record AssignmentInNonCanonical(int x, int y, long depth) {
public AssignmentInNonCanonical(int x, int y) {