From b7025f719fcdd03ebab40b45446d3a7a5b5f0834 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 13 Feb 2014 16:53:54 +0100 Subject: [PATCH] IDEA-120480 (Invalid set of actions on enum's constants.) --- .../ipp/modifiers/ModifierPredicate.java | 4 +- .../ipp/modifiers/make_public/Method.java | 4 ++ .../modifiers/make_public/Method_after.java | 4 ++ .../ipp/modifiers/make_public/MyClass.java | 5 +++ .../ipp/modifiers/make_public/MyEnum.java | 5 +++ .../modifiers/make_public/MyInterface.java | 6 +++ .../modifiers/MakePrivateIntentionTest.java | 40 +++++++++++++++++++ 7 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method.java create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method_after.java create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyClass.java create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyEnum.java create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyInterface.java create mode 100644 plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/modifiers/MakePrivateIntentionTest.java diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ModifierPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ModifierPredicate.java index d1c2781f26dc..47a39f62d8d4 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ModifierPredicate.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/modifiers/ModifierPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,7 +35,7 @@ class ModifierPredicate implements PsiElementPredicate { @Override public boolean satisfiedBy(PsiElement element) { final PsiElement parent = element.getParent(); - if (!(parent instanceof PsiClass || parent instanceof PsiField || parent instanceof PsiMethod)) { + if (!(parent instanceof PsiClass || parent instanceof PsiField || parent instanceof PsiMethod) || parent instanceof PsiEnumConstant) { return false; } if (element instanceof PsiDocComment || element instanceof PsiCodeBlock) { diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method.java new file mode 100644 index 000000000000..f9039da6bc72 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method.java @@ -0,0 +1,4 @@ +class Method { + + void m() {} +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method_after.java new file mode 100644 index 000000000000..e03c01836b84 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/Method_after.java @@ -0,0 +1,4 @@ +class Method { + + private void m() {} +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyClass.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyClass.java new file mode 100644 index 000000000000..6ecfed803830 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyClass.java @@ -0,0 +1,5 @@ +package com.siyeh.ipp.modifiers.make_public; + +class MyClass { + +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyEnum.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyEnum.java new file mode 100644 index 000000000000..424cfe5f1988 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyEnum.java @@ -0,0 +1,5 @@ +package com.siyeh.ipp.modifiers.make_public; + +enum MyEnum { + A, B, C +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyInterface.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyInterface.java new file mode 100644 index 000000000000..121a6a88f40f --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/modifiers/make_public/MyInterface.java @@ -0,0 +1,6 @@ +package com.siyeh.ipp.modifiers.make_public; + +public interface MyInterface { + + void m(); +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/modifiers/MakePrivateIntentionTest.java b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/modifiers/MakePrivateIntentionTest.java new file mode 100644 index 000000000000..e7e39115c918 --- /dev/null +++ b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/modifiers/MakePrivateIntentionTest.java @@ -0,0 +1,40 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.siyeh.ipp.modifiers; + +import com.siyeh.IntentionPowerPackBundle; +import com.siyeh.ipp.IPPTestCase; + +/** + * @author Bas Leijdekkers + */ +public class MakePrivateIntentionTest extends IPPTestCase { + + public void testMyEnum() { assertIntentionNotAvailable(); } + public void testMyClass() { assertIntentionNotAvailable(); } + public void testMyInterface() { assertIntentionNotAvailable(); } + public void testMethod() { doTest(); } + + @Override + protected String getRelativePath() { + return "modifiers/make_public"; + } + + @Override + protected String getIntentionName() { + return IntentionPowerPackBundle.message("make.private.intention.name"); + } +}