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

Unified Diff: pkg/analyzer/lib/src/summary/summarize_elements.dart

Issue 1686713002: Add support for redirectedConstructor to summaries. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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: pkg/analyzer/lib/src/summary/summarize_elements.dart
diff --git a/pkg/analyzer/lib/src/summary/summarize_elements.dart b/pkg/analyzer/lib/src/summary/summarize_elements.dart
index 5f4dbca910344fe99c2c1a65b11e73a137cb55f9..23af475a3284efbd753bf11a2b5a1c00ddc81b4d 100644
--- a/pkg/analyzer/lib/src/summary/summarize_elements.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_elements.dart
@@ -539,6 +539,31 @@ class _CompilationUnitSerializer {
b.kind = UnlinkedExecutableKind.constructor;
b.isConst = executableElement.isConst;
b.isFactory = executableElement.isFactory;
+ if (executableElement.redirectedConstructor != null) {
+ b.isRedirectedConstructor = true;
+ if (executableElement.isFactory) {
+ EntityRefBuilder typeRef = serializeTypeRef(
+ executableElement.redirectedConstructor.enclosingElement.type,
+ executableElement);
+ if (executableElement.redirectedConstructor.name.isNotEmpty) {
+ String name = executableElement.redirectedConstructor.name;
+ int typeId = typeRef.reference;
+ LinkedReference typeLinkedRef = linkedReferences[typeId];
+ unlinkedReferences.add(new UnlinkedReferenceBuilder(
+ name: name, prefixReference: typeId));
+ int refId = linkedReferences.length;
+ linkedReferences.add(new LinkedReferenceBuilder(
+ kind: ReferenceKind.constructor, unit: typeLinkedRef.unit));
+ b.redirectedConstructor = new EntityRefBuilder(
+ reference: refId, typeArguments: typeRef.typeArguments);
+ } else {
+ b.redirectedConstructor = typeRef;
+ }
+ } else {
+ b.redirectedConstructorName =
+ executableElement.redirectedConstructor.name;
+ }
+ }
if (executableElement.isConst &&
executableElement.constantInitializers != null) {
Set<String> constructorParameterNames =
« no previous file with comments | « pkg/analyzer/lib/src/summary/summarize_ast.dart ('k') | pkg/analyzer/test/src/summary/resynthesize_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698