Index: pkg/analyzer/lib/src/summary/summarize_ast.dart |
diff --git a/pkg/analyzer/lib/src/summary/summarize_ast.dart b/pkg/analyzer/lib/src/summary/summarize_ast.dart |
index e5f4c4f466ec13db671708770ba7877e11b8b1a9..e43e2e1058ec8ba344111bb9735b509c4a75b7a3 100644 |
--- a/pkg/analyzer/lib/src/summary/summarize_ast.dart |
+++ b/pkg/analyzer/lib/src/summary/summarize_ast.dart |
@@ -785,7 +785,22 @@ class _SummarizeAstVisitor extends SimpleAstVisitor { |
.map((FormalParameter p) => p.accept(this)) |
.toList(); |
b.kind = UnlinkedExecutableKind.constructor; |
- b.isFactory = node.factoryKeyword != null; |
+ if (node.factoryKeyword != null) { |
+ b.isFactory = true; |
+ if (node.redirectedConstructor != null) { |
+ b.isRedirectedConstructor = true; |
+ b.redirectedConstructor = new _ConstExprSerializer(this, null) |
+ .serializeConstructorName(node.redirectedConstructor.type, |
+ node.redirectedConstructor.name); |
+ } |
+ } else { |
+ for (ConstructorInitializer initializer in node.initializers) { |
+ if (initializer is RedirectingConstructorInvocation) { |
+ b.isRedirectedConstructor = true; |
+ b.redirectedConstructorName = initializer.constructorName?.name; |
+ } |
+ } |
+ } |
b.isConst = node.constKeyword != null; |
b.isExternal = node.externalKeyword != null; |
b.documentationComment = serializeDocumentation(node.documentationComment); |