java: disable split declaration & assignment inside classes/lambdas/switches

GitOrigin-RevId: bf3dbb61f0f7c69f9310e20931a16af0dda2050d
This commit is contained in:
Anna Kozlova
2019-06-24 21:43:19 +02:00
committed by intellij-monorepo-bot
parent d6cc04e036
commit e892dae139
2 changed files with 9 additions and 6 deletions

View File

@@ -35,12 +35,9 @@ public class SplitDeclarationAction extends PsiElementBaseIntentionAction {
if (!canModify(element)) return false;
if (!element.getLanguage().isKindOf(JavaLanguage.INSTANCE)) return false;
final PsiElement context = PsiTreeUtil.getParentOfType(element, PsiDeclarationStatement.class, PsiClass.class);
if (context instanceof PsiDeclarationStatement) {
return isAvailableOnDeclarationStatement((PsiDeclarationStatement)context);
}
return false;
final PsiDeclarationStatement
context = PsiTreeUtil.getParentOfType(element, PsiDeclarationStatement.class, false, PsiClass.class, PsiLambdaExpression.class, PsiSwitchExpression.class);
return context != null && isAvailableOnDeclarationStatement(context);
}
private boolean isAvailableOnDeclarationStatement(PsiDeclarationStatement decl) {

View File

@@ -0,0 +1,6 @@
// "Split into declaration and assignment" "false"
class Test {
{
Runnable r = () -> {<caret>};
}
}