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

Unified Diff: editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/engine/EngineSemanticProcessor.java

Issue 263213007: New analysis_server snapshot and completion.dart in analysis_services. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/engine/EngineSemanticProcessor.java
diff --git a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/engine/EngineSemanticProcessor.java b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/engine/EngineSemanticProcessor.java
index 78cad546ae968c03e45c97bf5ed66e04e38dc3af..c0ecbe541cc69cee2eee3b1d7c992b1694df482c 100644
--- a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/engine/EngineSemanticProcessor.java
+++ b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/engine/EngineSemanticProcessor.java
@@ -420,7 +420,7 @@ public class EngineSemanticProcessor extends SemanticProcessor {
}
static void useImportPrefix(final Context context, final AstNode rootNode,
- final String prefixName, final String[] packageNames) {
+ final String prefixName, final String[] packageNames, final boolean exactPackage) {
rootNode.accept(new RecursiveAstVisitor<Void>() {
@Override
public Void visitMethodInvocation(MethodInvocation node) {
@@ -431,7 +431,7 @@ public class EngineSemanticProcessor extends SemanticProcessor {
ITypeBinding binding = (ITypeBinding) binding0;
String shortName = binding.getName();
shortName = StringUtils.substringBefore(shortName, "<");
- if (isPrefixPackage(binding)) {
+ if (shouldRewrite(binding)) {
SemanticProcessor.replaceNode(target, identifier(prefixName, shortName));
return null;
}
@@ -448,7 +448,7 @@ public class EngineSemanticProcessor extends SemanticProcessor {
ITypeBinding binding = (ITypeBinding) binding0;
String shortName = binding.getName();
shortName = StringUtils.substringBefore(shortName, "<");
- if (isPrefixPackage(binding)) {
+ if (shouldRewrite(binding)) {
SemanticProcessor.replaceNode(target, identifier(prefixName, shortName));
return null;
}
@@ -460,7 +460,7 @@ public class EngineSemanticProcessor extends SemanticProcessor {
public Void visitTypeName(TypeName node) {
ITypeBinding binding = context.getNodeTypeBinding(node);
if (binding != null) {
- if (isPrefixPackage(binding)) {
+ if (shouldRewrite(binding)) {
String shortName = node.getName().getName();
if (shortName.indexOf('.') != -1) {
shortName = StringUtils.substringAfterLast(shortName, ".");
@@ -473,6 +473,16 @@ public class EngineSemanticProcessor extends SemanticProcessor {
return super.visitTypeName(node);
}
+ private boolean isInPackage(ITypeBinding binding) {
+ String typeName = binding.getQualifiedName();
+ for (String packageName : packageNames) {
+ if (typeName.equals(packageName + binding.getName())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private boolean isPrefixPackage(ITypeBinding binding) {
String typeName = binding.getQualifiedName();
for (String packageName : packageNames) {
@@ -482,6 +492,13 @@ public class EngineSemanticProcessor extends SemanticProcessor {
}
return false;
}
+
+ private boolean shouldRewrite(ITypeBinding binding) {
+ if (exactPackage) {
+ return isInPackage(binding);
+ }
+ return isPrefixPackage(binding);
+ }
});
}

Powered by Google App Engine
This is Rietveld 408576698