Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(340)

Unified Diff: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/internal/corext/refactoring/RefactoringAvailabilityTester.java

Issue 10384142: Initial support for 'Extract temp' - only when single expression selected (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Use ASTVisitor as type switch Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/internal/corext/refactoring/RefactoringAvailabilityTester.java
diff --git a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/internal/corext/refactoring/RefactoringAvailabilityTester.java b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/internal/corext/refactoring/RefactoringAvailabilityTester.java
index ad053f9c50d97a01e0f0fe349e9d3c30e042c263..eaf8dc8741992e6949b3481d507473e3bb78f2f3 100644
--- a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/internal/corext/refactoring/RefactoringAvailabilityTester.java
+++ b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/internal/corext/refactoring/RefactoringAvailabilityTester.java
@@ -13,6 +13,8 @@
*/
package com.google.dart.tools.internal.corext.refactoring;
+import com.google.dart.compiler.ast.DartExprStmt;
+import com.google.dart.compiler.ast.DartNode;
import com.google.dart.tools.core.model.CompilationUnit;
import com.google.dart.tools.core.model.DartElement;
import com.google.dart.tools.core.model.DartFunction;
@@ -25,6 +27,7 @@ import com.google.dart.tools.core.model.DartVariableDeclaration;
import com.google.dart.tools.core.model.Field;
import com.google.dart.tools.core.model.Method;
import com.google.dart.tools.core.model.Type;
+import com.google.dart.tools.ui.internal.text.editor.DartTextSelection;
import com.google.dart.tools.ui.internal.util.DartModelUtil;
import org.eclipse.core.resources.IResource;
@@ -477,15 +480,18 @@ public class RefactoringAvailabilityTester {
// }
// return isExtractSupertypeAvailable(new TypeMember[]{(TypeMember) element});
// }
-//
-// public static boolean isExtractTempAvailable(DartTextSelection selection) {
-// ASTNode[] nodes = selection.resolveSelectedNodes();
+
+ public static boolean isExtractLocalAvailable(DartTextSelection selection) {
+ DartNode[] nodes = selection.resolveSelectedNodes();
+ return (selection.resolveInMethodBody() || selection.resolveInClassInitializer())
+ && (Checks.isExtractableExpression(nodes, selection.resolveCoveringNode()) || nodes != null
+ && nodes.length == 1 && nodes[0] instanceof DartExprStmt);
// return (selection.resolveInMethodBody() || selection.resolveInClassInitializer())
// && !selection.resolveInAnnotation()
// && (Checks.isExtractableExpression(nodes, selection.resolveCoveringNode()) || nodes != null
-// && nodes.length == 1 && nodes[0] instanceof ExpressionStatement);
-// }
-//
+// && nodes.length == 1 && nodes[0] instanceof DartExprStmt);
+ }
+
// public static boolean isGeneralizeTypeAvailable(DartElement element)
// throws DartModelException {
// if (element != null && element.exists()) {

Powered by Google App Engine
This is Rietveld 408576698