convert method to closure and back again fix 92.50
authorMaxim Medvedev <maxim.medvedev@jetbrains.com>
Sat, 21 Nov 2009 15:49:02 +0000 (18:49 +0300)
committerMaxim Medvedev <maxim.medvedev@jetbrains.com>
Sat, 21 Nov 2009 15:49:02 +0000 (18:49 +0300)
plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/conversions/ConvertClosureToMethodIntention.java
plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/conversions/ConvertMethodToClosureIntention.java

index a7521b1feb74e5092f72683fb0c16f6646da08ac..edabc9940fbb352a803860569644af7aaace297c 100644 (file)
@@ -41,6 +41,7 @@ public class ConvertClosureToMethodIntention extends Intention {
 
   @Override
   protected void processIntention(@NotNull PsiElement element) throws IncorrectOperationException {
+    element = element.getParent();
     StringBuilder builder = new StringBuilder(element.getTextLength());
     final GrField field = (GrField)element;
     final GrClosableBlock block = (GrClosableBlock)field.getInitializerGroovy();
@@ -68,12 +69,15 @@ public class ConvertClosureToMethodIntention extends Intention {
 
   private static class MyPredicate implements PsiElementPredicate {
     public boolean satisfiedBy(PsiElement element) {
-      if (!(element instanceof GrField)) return false;
       final PsiElement parent = element.getParent();
-      if (!(parent instanceof GrVariableDeclaration)) return false;
-      if (((GrVariableDeclaration)parent).getVariables().length != 1) return false;
+      if (!(parent instanceof GrField)) return false;
+      if (((GrField)parent).getNameIdentifierGroovy() != element) return false;
 
-      final GrExpression expression = ((GrField)element).getInitializerGroovy();
+      final PsiElement varDeclaration = parent.getParent();
+      if (!(varDeclaration instanceof GrVariableDeclaration)) return false;
+      if (((GrVariableDeclaration)varDeclaration).getVariables().length != 1) return false;
+
+      final GrExpression expression = ((GrField)parent).getInitializerGroovy();
       return expression instanceof GrClosableBlock;
     }
   }
index 5c6254b5052ae4bd3329954d41afa7927012dc6f..18ba62a2ef076442c420d811cf52ef8035926ff5 100644 (file)
@@ -40,6 +40,7 @@ public class ConvertMethodToClosureIntention extends Intention {
 
   @Override
   protected void processIntention(@NotNull PsiElement element) throws IncorrectOperationException {
+    element = element.getParent();
     final GrMethod method = (GrMethod)element;
     StringBuilder builder = new StringBuilder(method.getTextLength());
     String modifiers = method.getModifierList().getText();
@@ -58,7 +59,12 @@ public class ConvertMethodToClosureIntention extends Intention {
 
   private static class MyPredicate implements PsiElementPredicate {
     public boolean satisfiedBy(PsiElement element) {
-      return element instanceof GrMethod && ((GrMethod)element).getBlock() != null && element.getParent() instanceof GrTypeDefinitionBody;
+      final PsiElement parent = element.getParent();
+      return parent instanceof GrMethod &&
+             element == ((GrMethod)parent).getNameIdentifierGroovy() &&
+             ((GrMethod)parent).getBlock() != null &&
+             parent.getParent() instanceof GrTypeDefinitionBody;
+//      return element instanceof GrMethod && ((GrMethod)element).getBlock() != null && element.getParent() instanceof GrTypeDefinitionBody;
     }
   }
 }