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()); }