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

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

Issue 22285004: New analyzer_experimental snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 4 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/Context.java
diff --git a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/Context.java b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/Context.java
index f56567d3ab75dc32d932050c4d70e9937acff199..1b69b7b227443697b093ed129658339cb48278b0 100644
--- a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/Context.java
+++ b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/Context.java
@@ -101,6 +101,7 @@ public class Context {
public final List<SuperConstructorInvocation> superInvocations = Lists.newArrayList();
public final List<InstanceCreationExpression> instanceCreations = Lists.newArrayList();
public boolean isEnum;
+ public boolean insertEnclosingTypeRef;
String declName;
public ConstructorDescription(IMethodBinding binding) {
@@ -553,6 +554,14 @@ public class Context {
/**
* @return the not <code>null</code> {@link ConstructorDescription}, may be just added.
*/
+ public ConstructorDescription getConstructorDescription(ConstructorDeclaration node) {
+ IMethodBinding binding = constructorToBinding.get(node);
+ return getConstructorDescription(binding);
+ }
+
+ /**
+ * @return the not <code>null</code> {@link ConstructorDescription}, may be just added.
+ */
public ConstructorDescription getConstructorDescription(IMethodBinding binding) {
ConstructorDescription description = bindingToConstructor.get(binding);
if (description == null) {
@@ -690,6 +699,7 @@ public class Context {
ensureMethodParameterDoesNotHide(dartUniverse);
new ConstructorSemanticProcessor(this).process(dartUniverse);
renameConstructors(dartUniverse);
+ insertEnclosingTypeForInstanceCreationArguments(dartUniverse);
}
// done
return dartUniverse;
@@ -1018,6 +1028,21 @@ public class Context {
});
}
+ // XXX
Brian Wilkerson 2013/08/07 20:31:29 Remove?
+ private void insertEnclosingTypeForInstanceCreationArguments(CompilationUnit unit) {
+ unit.accept(new RecursiveASTVisitor<Void>() {
+ @Override
+ public Void visitInstanceCreationExpression(InstanceCreationExpression node) {
+ IMethodBinding binding = (IMethodBinding) getNodeBinding(node);
+ ConstructorDescription constructorDescription = getConstructorDescription(binding);
+ if (constructorDescription.insertEnclosingTypeRef) {
+ node.getArgumentList().getArguments().add(0, thisExpression());
+ }
+ return super.visitInstanceCreationExpression(node);
+ }
+ });
+ }
+
private void replaceInnerClassReferences(CompilationUnit unit) {
for (SimpleIdentifier identifier : innerClassNames) {
renameIdentifier(identifier, identifier.getName());

Powered by Google App Engine
This is Rietveld 408576698