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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library serialization.elements; 5 library serialization.elements;
6 6
7 import 'package:analyzer/dart/element/element.dart'; 7 import 'package:analyzer/dart/element/element.dart';
8 import 'package:analyzer/dart/element/type.dart'; 8 import 'package:analyzer/dart/element/type.dart';
9 import 'package:analyzer/src/dart/element/element.dart'; 9 import 'package:analyzer/src/dart/element/element.dart';
10 import 'package:analyzer/src/dart/element/type.dart'; 10 import 'package:analyzer/src/dart/element/type.dart';
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 if (executableElement is PropertyAccessorElement) { 532 if (executableElement is PropertyAccessorElement) {
533 if (executableElement.isGetter) { 533 if (executableElement.isGetter) {
534 b.kind = UnlinkedExecutableKind.getter; 534 b.kind = UnlinkedExecutableKind.getter;
535 } else { 535 } else {
536 b.kind = UnlinkedExecutableKind.setter; 536 b.kind = UnlinkedExecutableKind.setter;
537 } 537 }
538 } else if (executableElement is ConstructorElementImpl) { 538 } else if (executableElement is ConstructorElementImpl) {
539 b.kind = UnlinkedExecutableKind.constructor; 539 b.kind = UnlinkedExecutableKind.constructor;
540 b.isConst = executableElement.isConst; 540 b.isConst = executableElement.isConst;
541 b.isFactory = executableElement.isFactory; 541 b.isFactory = executableElement.isFactory;
542 if (executableElement.redirectedConstructor != null) {
543 b.isRedirectedConstructor = true;
544 if (executableElement.isFactory) {
545 EntityRefBuilder typeRef = serializeTypeRef(
546 executableElement.redirectedConstructor.enclosingElement.type,
547 executableElement);
548 if (executableElement.redirectedConstructor.name.isNotEmpty) {
549 String name = executableElement.redirectedConstructor.name;
550 int typeId = typeRef.reference;
551 LinkedReference typeLinkedRef = linkedReferences[typeId];
552 unlinkedReferences.add(new UnlinkedReferenceBuilder(
553 name: name, prefixReference: typeId));
554 int refId = linkedReferences.length;
555 linkedReferences.add(new LinkedReferenceBuilder(
556 kind: ReferenceKind.constructor, unit: typeLinkedRef.unit));
557 b.redirectedConstructor = new EntityRefBuilder(
558 reference: refId, typeArguments: typeRef.typeArguments);
559 } else {
560 b.redirectedConstructor = typeRef;
561 }
562 } else {
563 b.redirectedConstructorName =
564 executableElement.redirectedConstructor.name;
565 }
566 }
542 if (executableElement.isConst && 567 if (executableElement.isConst &&
543 executableElement.constantInitializers != null) { 568 executableElement.constantInitializers != null) {
544 Set<String> constructorParameterNames = 569 Set<String> constructorParameterNames =
545 executableElement.parameters.map((p) => p.name).toSet(); 570 executableElement.parameters.map((p) => p.name).toSet();
546 b.constantInitializers = executableElement.constantInitializers 571 b.constantInitializers = executableElement.constantInitializers
547 .map((ConstructorInitializer initializer) => 572 .map((ConstructorInitializer initializer) =>
548 serializeConstructorInitializer( 573 serializeConstructorInitializer(
549 initializer, 574 initializer,
550 (expr) => 575 (expr) =>
551 serializeConstExpr(expr, constructorParameterNames))) 576 serializeConstExpr(expr, constructorParameterNames)))
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after
1253 exportNames.add(new LinkedExportNameBuilder( 1278 exportNames.add(new LinkedExportNameBuilder(
1254 name: name, 1279 name: name,
1255 dependency: serializeDependency(dependentLibrary), 1280 dependency: serializeDependency(dependentLibrary),
1256 unit: unit, 1281 unit: unit,
1257 kind: kind)); 1282 kind: kind));
1258 } 1283 }
1259 pb.exportNames = exportNames; 1284 pb.exportNames = exportNames;
1260 return pb; 1285 return pb;
1261 } 1286 }
1262 } 1287 }
OLDNEW
« 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