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

Unified Diff: editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ObjectSemanticProcessor.java

Issue 15675016: More fixes for java2dart and status files. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 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/processor/ObjectSemanticProcessor.java
diff --git a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ObjectSemanticProcessor.java b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ObjectSemanticProcessor.java
index e39ca7551e56c9f9928ac6aa3b705a52f9277026..5f033f34863a197ca53a326cd9b06f66c6beb6d2 100644
--- a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ObjectSemanticProcessor.java
+++ b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ObjectSemanticProcessor.java
@@ -162,7 +162,7 @@ public class ObjectSemanticProcessor extends SemanticProcessor {
ITypeBinding argTypeBinding = context.getNodeTypeBinding(leftExpr);
if (JavaUtils.isTypeNamed(argTypeBinding, "java.lang.String")) {
Expression rightExpr = node.getRightHandSide();
- replaceCharLiteralWithStringliteral(rightExpr);
+ replaceCharWithString(rightExpr);
return null;
}
}
@@ -325,8 +325,8 @@ public class ObjectSemanticProcessor extends SemanticProcessor {
}
if (isMethodInClass2(node, "replace(char,char)", "java.lang.String")) {
nameNode.setToken(token("replaceAll"));
- replaceCharLiteralWithStringliteral(args.get(0));
- replaceCharLiteralWithStringliteral(args.get(1));
+ replaceCharWithString(args.get(0));
+ replaceCharWithString(args.get(1));
return null;
}
if (isMethodInClass2(
@@ -344,7 +344,7 @@ public class ObjectSemanticProcessor extends SemanticProcessor {
}
if (isMethodInClass(node, "indexOf", "java.lang.String")
|| isMethodInClass(node, "lastIndexOf", "java.lang.String")) {
- replaceCharLiteralWithStringliteral(args.get(0));
+ replaceCharWithString(args.get(0));
return null;
}
if (isMethodInClass(node, "print", "java.io.PrintWriter")) {
@@ -589,14 +589,27 @@ public class ObjectSemanticProcessor extends SemanticProcessor {
return null;
}
- private void replaceCharLiteralWithStringliteral(Expression x) {
+ private void replaceCharWithString(Expression x) {
+ // should by 'char'
+ ITypeBinding typeBinding = context.getNodeTypeBinding(x);
+ if (!JavaUtils.isTypeNamed(typeBinding, "char")) {
+ return;
+ }
+ // replace literal
if (x instanceof IntegerLiteral) {
IntegerLiteral literal = (IntegerLiteral) x;
- ITypeBinding typeBinding = context.getNodeTypeBinding(x);
- if (JavaUtils.isTypeNamed(typeBinding, "char")) {
- replaceNode(literal, string(String.valueOf((char) literal.getValue().intValue())));
- }
- }
+ replaceNode(x, string(String.valueOf((char) literal.getValue().intValue())));
+ return;
+ }
+ // replace expression
+ SimpleIdentifier placeholder = identifier("ph");
+ InstanceCreationExpression newString = instanceCreationExpression(
+ Keyword.NEW,
+ typeName("String"),
+ "fromCharCode",
+ placeholder);
+ replaceNode(x, newString);
+ replaceNode(placeholder, x);
}
});
}

Powered by Google App Engine
This is Rietveld 408576698