From 7e2050cf72f25a277322d133daab8921e96c8a4e Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 4 Sep 2024 11:51:03 +0200 Subject: [PATCH] [java-inspections] MagicConstantInspection: test to ensure that parameters and fields do not propagate automatically GitOrigin-RevId: 7053c2c950894e6694353e90d77cb1f2ff772fb3 --- .../testData/inspection/magic/Propagate.java | 36 +++++++++++++++++++ .../MagicConstantInspectionTest.java | 1 + 2 files changed, 37 insertions(+) create mode 100644 java/java-tests/testData/inspection/magic/Propagate.java diff --git a/java/java-tests/testData/inspection/magic/Propagate.java b/java/java-tests/testData/inspection/magic/Propagate.java new file mode 100644 index 000000000000..c2192819e56c --- /dev/null +++ b/java/java-tests/testData/inspection/magic/Propagate.java @@ -0,0 +1,36 @@ +import org.intellij.lang.annotations.MagicConstant; + +class Main { + static final int V1 = 10; + static final int V2 = 20; + + void consume(@MagicConstant(intValues = {V1, V2}) int x) { + + } +} +class Use { + int field; + int fieldOk; + @MagicConstant(intValues = {Main.V1, Main.V2}) + int fieldOkAnnotated; + + Use() { + this.field = 123; + this.fieldOk = Main.V1; + this.fieldOkAnnotated = Main.V2; + test(123, Main.V1, Main.V2); + } + + void test(int parameter, int parameterOk, @MagicConstant(intValues = {Main.V1, Main.V2}) int parameterOkAnnotated) { + int local = 123; + int localOk = Main.V1; + new Main().consume(field); + new Main().consume(fieldOk); + new Main().consume(fieldOkAnnotated); + new Main().consume(local); + new Main().consume(localOk); + new Main().consume(parameter); + new Main().consume(parameterOk); + new Main().consume(parameterOkAnnotated); + } +} diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/MagicConstantInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/MagicConstantInspectionTest.java index 6b273dd247f6..180650a10baf 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/MagicConstantInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/MagicConstantInspectionTest.java @@ -37,6 +37,7 @@ public class MagicConstantInspectionTest extends LightJavaCodeInsightFixtureTest public void testEnumConstructor() { doTest(); } public void testFieldInitializer() { doTest(); } public void testSwitchBlock() { doTest(); } + public void testPropagate() { doTest(); } public void testSwitchExpression1() { IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_14, () -> doTest()); } public void testSwitchExpression2() { IdeaTestUtil.withLevel(getModule(), LanguageLevel.JDK_14, () -> doTest()); }