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

Unified Diff: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java

Issue 15162010: Report CTEC.RECURSIVE_CONSTRUCTOR_REDIRECT (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Non-error test and status file tweaks Created 7 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.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
index 510591592dece8bd90be68e9e056d92da98fd895..edf5a2d42058e29ed60b54a2e934587edd4ee692 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/ElementResolver.java
@@ -25,6 +25,7 @@ import com.google.dart.engine.ast.CommentReference;
import com.google.dart.engine.ast.CompilationUnit;
import com.google.dart.engine.ast.ConstructorDeclaration;
import com.google.dart.engine.ast.ConstructorFieldInitializer;
+import com.google.dart.engine.ast.ConstructorInitializer;
import com.google.dart.engine.ast.ConstructorName;
import com.google.dart.engine.ast.ContinueStatement;
import com.google.dart.engine.ast.ExportDirective;
@@ -464,7 +465,7 @@ public class ElementResolver extends SimpleASTVisitor<Void> {
@Override
public Void visitConstructorDeclaration(ConstructorDeclaration node) {
super.visitConstructorDeclaration(node);
- // set redirected constructor
+ // set redirected factory constructor
{
ConstructorName redirectedNode = node.getRedirectedConstructor();
if (redirectedNode != null) {
@@ -475,6 +476,16 @@ public class ElementResolver extends SimpleASTVisitor<Void> {
}
}
}
+ // set redirected generate constructor
+ for (ConstructorInitializer initializer : node.getInitializers()) {
+ if (initializer instanceof RedirectingConstructorInvocation) {
+ ConstructorElement redirectedElement = ((RedirectingConstructorInvocation) initializer).getElement();
+ ConstructorElement element = node.getElement();
+ if (element instanceof ConstructorElementImpl) {
+ ((ConstructorElementImpl) element).setRedirectedConstructor(redirectedElement);
+ }
+ }
+ }
// done
return null;
}

Powered by Google App Engine
This is Rietveld 408576698