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

Side by Side Diff: pkg/analyzer/lib/src/summary/summarize_elements.dart

Issue 1524443002: Track implicit vs explicit types in summaries. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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/src/generated/element.dart'; 7 import 'package:analyzer/src/generated/element.dart';
8 import 'package:analyzer/src/generated/resolver.dart'; 8 import 'package:analyzer/src/generated/resolver.dart';
9 import 'package:analyzer/src/generated/utilities_dart.dart'; 9 import 'package:analyzer/src/generated/utilities_dart.dart';
10 import 'package:analyzer/src/summary/builder.dart'; 10 import 'package:analyzer/src/summary/builder.dart';
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 } else if (executableElement is ConstructorElement) { 387 } else if (executableElement is ConstructorElement) {
388 b.kind = UnlinkedExecutableKind.constructor; 388 b.kind = UnlinkedExecutableKind.constructor;
389 b.isConst = executableElement.isConst; 389 b.isConst = executableElement.isConst;
390 b.isFactory = executableElement.isFactory; 390 b.isFactory = executableElement.isFactory;
391 } else { 391 } else {
392 b.kind = UnlinkedExecutableKind.functionOrMethod; 392 b.kind = UnlinkedExecutableKind.functionOrMethod;
393 } 393 }
394 b.isAbstract = executableElement.isAbstract; 394 b.isAbstract = executableElement.isAbstract;
395 b.isStatic = executableElement.isStatic && 395 b.isStatic = executableElement.isStatic &&
396 executableElement.enclosingElement is ClassElement; 396 executableElement.enclosingElement is ClassElement;
397 b.hasImplicitReturnType = executableElement.hasImplicitReturnType;
397 return b; 398 return b;
398 } 399 }
399 400
400 /** 401 /**
401 * Serialize the given [exportElement] into an [UnlinkedExport]. 402 * Serialize the given [exportElement] into an [UnlinkedExport].
402 */ 403 */
403 UnlinkedExportBuilder serializeExport(ExportElement exportElement) { 404 UnlinkedExportBuilder serializeExport(ExportElement exportElement) {
404 UnlinkedExportBuilder b = new UnlinkedExportBuilder(ctx); 405 UnlinkedExportBuilder b = new UnlinkedExportBuilder(ctx);
405 b.uri = exportElement.uri; 406 b.uri = exportElement.uri;
406 b.combinators = exportElement.combinators.map(serializeCombinator).toList(); 407 b.combinators = exportElement.combinators.map(serializeCombinator).toList();
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 b.isInitializingFormal = parameter.isInitializingFormal; 490 b.isInitializingFormal = parameter.isInitializingFormal;
490 DartType type = parameter.type; 491 DartType type = parameter.type;
491 if (type is FunctionType) { 492 if (type is FunctionType) {
492 b.isFunctionTyped = true; 493 b.isFunctionTyped = true;
493 if (!type.returnType.isVoid) { 494 if (!type.returnType.isVoid) {
494 b.type = serializeTypeRef(type.returnType, parameter); 495 b.type = serializeTypeRef(type.returnType, parameter);
495 } 496 }
496 b.parameters = type.parameters.map(serializeParam).toList(); 497 b.parameters = type.parameters.map(serializeParam).toList();
497 } else { 498 } else {
498 b.type = serializeTypeRef(type, parameter); 499 b.type = serializeTypeRef(type, parameter);
500 b.hasImplicitType = parameter.hasImplicitType;
499 } 501 }
500 return b; 502 return b;
501 } 503 }
502 504
503 /** 505 /**
504 * Serialize the given [typedefElement], which exists in the unit numbered 506 * Serialize the given [typedefElement], which exists in the unit numbered
505 * [unitNum], creating an [UnlinkedTypedef]. 507 * [unitNum], creating an [UnlinkedTypedef].
506 */ 508 */
507 UnlinkedTypedefBuilder serializeTypedef( 509 UnlinkedTypedefBuilder serializeTypedef(
508 FunctionTypeAliasElement typedefElement, int unitNum) { 510 FunctionTypeAliasElement typedefElement, int unitNum) {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 if (variable.enclosingElement is ClassElement) { 620 if (variable.enclosingElement is ClassElement) {
619 assert(unitNum == 0); 621 assert(unitNum == 0);
620 } 622 }
621 UnlinkedVariableBuilder b = new UnlinkedVariableBuilder(ctx); 623 UnlinkedVariableBuilder b = new UnlinkedVariableBuilder(ctx);
622 b.name = variable.name; 624 b.name = variable.name;
623 b.unit = unitNum; 625 b.unit = unitNum;
624 b.type = serializeTypeRef(variable.type, variable); 626 b.type = serializeTypeRef(variable.type, variable);
625 b.isStatic = variable.isStatic && variable.enclosingElement is ClassElement; 627 b.isStatic = variable.isStatic && variable.enclosingElement is ClassElement;
626 b.isFinal = variable.isFinal; 628 b.isFinal = variable.isFinal;
627 b.isConst = variable.isConst; 629 b.isConst = variable.isConst;
630 b.hasImplicitType = variable.hasImplicitType;
628 return b; 631 return b;
629 } 632 }
630 } 633 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/summary/format.dart ('k') | pkg/analyzer/test/src/summary/summary_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698