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 f46c04051839d4a2a6e53b94d928545c78257095..e906b6246dcc7ca3718ac425d14f7102c462d35d 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 |
@@ -54,7 +54,6 @@ import com.google.dart.java2dart.util.JavaUtils; |
import static com.google.dart.java2dart.util.ASTFactory.assignmentExpression; |
import static com.google.dart.java2dart.util.ASTFactory.binaryExpression; |
-import static com.google.dart.java2dart.util.ASTFactory.block; |
import static com.google.dart.java2dart.util.ASTFactory.blockFunctionBody; |
import static com.google.dart.java2dart.util.ASTFactory.expressionFunctionBody; |
import static com.google.dart.java2dart.util.ASTFactory.expressionStatement; |
@@ -63,13 +62,16 @@ import static com.google.dart.java2dart.util.ASTFactory.formalParameterList; |
import static com.google.dart.java2dart.util.ASTFactory.functionDeclaration; |
import static com.google.dart.java2dart.util.ASTFactory.functionExpression; |
import static com.google.dart.java2dart.util.ASTFactory.identifier; |
+import static com.google.dart.java2dart.util.ASTFactory.instanceCreationExpression; |
import static com.google.dart.java2dart.util.ASTFactory.integer; |
import static com.google.dart.java2dart.util.ASTFactory.methodDeclaration; |
import static com.google.dart.java2dart.util.ASTFactory.methodInvocation; |
import static com.google.dart.java2dart.util.ASTFactory.parenthesizedExpression; |
import static com.google.dart.java2dart.util.ASTFactory.prefixExpression; |
import static com.google.dart.java2dart.util.ASTFactory.propertyAccess; |
+import static com.google.dart.java2dart.util.ASTFactory.returnStatement; |
import static com.google.dart.java2dart.util.ASTFactory.simpleFormalParameter; |
+import static com.google.dart.java2dart.util.ASTFactory.throwExpression; |
import static com.google.dart.java2dart.util.ASTFactory.typeName; |
import static com.google.dart.java2dart.util.ASTFactory.variableDeclaration; |
@@ -540,13 +542,13 @@ public class EngineSemanticProcessor extends SemanticProcessor { |
@Override |
public Void visitFieldDeclaration(FieldDeclaration node) { |
super.visitFieldDeclaration(node); |
- ClassDeclaration parentClass = (ClassDeclaration) node.getParent(); |
- if (parentClass.getName().getName().equals("FileBasedSource")) { |
- for (VariableDeclaration field : node.getFields().getVariables()) { |
- if (field.getName().getName().equals("_UTF_8_CHARSET")) { |
- parentClass.getMembers().remove(node); |
- } |
- } |
+ if (hasField(node, "FileBasedSource", "_UTF_8_CHARSET")) { |
+ removeNode(node); |
+ return null; |
+ } |
+ if (hasField(node, "InstrumentedAnalysisContextImpl", "_uiThread")) { |
+ removeNode(node); |
+ return null; |
} |
return null; |
} |
@@ -587,16 +589,36 @@ public class EngineSemanticProcessor extends SemanticProcessor { |
} |
if (isMethodInClass( |
binding, |
+ "setUIThread", |
+ "com.google.dart.engine.internal.context.InstrumentedAnalysisContextImpl") |
+ || isMethodInClass( |
+ binding, |
+ "checkThread", |
+ "com.google.dart.engine.internal.context.InstrumentedAnalysisContextImpl")) { |
+ removeNode(node); |
+ return null; |
+ } |
+ // XXX |
Brian Wilkerson
2014/02/28 22:30:38
Remove?
|
+ if (isMethodInClass( |
+ binding, |
"getContentsFromFile", |
+ "com.google.dart.engine.source.FileBasedSource") && parameters.size() == 0) { |
+ Statement statement = returnStatement(instanceCreationExpression( |
+ Keyword.NEW, |
+ typeName("TimestampedData", typeName("String")), |
+ methodInvocation(identifier("_file"), identifier("lastModified")), |
+ methodInvocation(identifier("_file"), identifier("readAsStringSync")))); |
+ node.setBody(blockFunctionBody(statement)); |
+ return null; |
+ } |
+ if (isMethodInClass( |
+ binding, |
+ "getContentsFromFileToReceiver", |
"com.google.dart.engine.source.FileBasedSource") && parameters.size() == 1) { |
- SimpleIdentifier receiverIdent = parameters.get(0).getIdentifier(); |
- Block tryCacheBlock = block(); |
- ExpressionStatement statement = expressionStatement(methodInvocation( |
- receiverIdent, |
- "accept", |
- methodInvocation(identifier("file"), "readAsStringSync"), |
- methodInvocation(identifier("file"), "lastModified"))); |
- node.setBody(blockFunctionBody(tryCacheBlock, statement)); |
+ Statement statement = expressionStatement(throwExpression(instanceCreationExpression( |
+ Keyword.NEW, |
+ typeName("UnsupportedOperationException")))); |
+ node.setBody(blockFunctionBody(statement)); |
return null; |
} |
return null; |
@@ -606,6 +628,14 @@ public class EngineSemanticProcessor extends SemanticProcessor { |
public Void visitMethodInvocation(MethodInvocation node) { |
ASTNode parent = node.getParent(); |
List<Expression> args = node.getArgumentList().getArguments(); |
+ if (isMethodInClass( |
+ node, |
+ "checkThread", |
+ "com.google.dart.engine.internal.context.InstrumentedAnalysisContextImpl")) { |
+ Statement statement = node.getAncestor(Statement.class); |
+ removeNode(statement); |
+ return null; |
+ } |
if (isMethodInClass(node, "toArray", "com.google.dart.engine.utilities.collection.IntList")) { |
replaceNode(node, node.getTarget()); |
return null; |
@@ -668,6 +698,18 @@ public class EngineSemanticProcessor extends SemanticProcessor { |
} |
return node.getParameters().getParameters(); |
} |
+ |
+ private boolean hasField(FieldDeclaration node, String className, String fieldName) { |
+ ClassDeclaration parentClass = (ClassDeclaration) node.getParent(); |
+ if (parentClass.getName().getName().equals(className)) { |
+ for (VariableDeclaration field : node.getFields().getVariables()) { |
+ if (field.getName().getName().equals(fieldName)) { |
+ return true; |
+ } |
+ } |
+ } |
+ return false; |
+ } |
}); |
} |
} |