RecordAugmentProvider: check for existing method before generating light one

GitOrigin-RevId: 3256c52054ad399442c44e74442819e18fbc2dba
This commit is contained in:
Roman.Ivanov
2019-12-18 05:34:39 +00:00
committed by intellij-monorepo-bot
parent 62c68622f1
commit 89f2ddb51d
3 changed files with 38 additions and 3 deletions
@@ -0,0 +1,13 @@
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
record A(@F @M int value) {
int value() {
return 0;
}
void test() {
<caret>value();
}
}
@@ -2,6 +2,7 @@
package com.intellij.java.psi.resolve;
import com.intellij.psi.*;
import com.intellij.psi.impl.light.LightRecordMethod;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.LightResolveTestCase;
import org.jetbrains.annotations.NotNull;
@@ -51,4 +52,12 @@ public class ResolveRecordMethodsTest extends LightResolveTestCase {
assertTrue(targetField.hasAnnotation("F"));
assertFalse(targetField.hasAnnotation("M"));
}
public void testExistingMethod() {
PsiElement target = resolve();
assertTrue(target instanceof PsiMethod);
assertFalse(target instanceof LightRecordMethod);
PsiClass aClass = ((PsiMethod)target).getContainingClass();
assertEquals(2, aClass.getMethods().length);
}
}