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

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

Issue 1712583003: Serialize and resynthesize labels. (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/member.dart'; 10 import 'package:analyzer/src/dart/element/member.dart';
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 b.annotations = serializeAnnotations(executableElement); 597 b.annotations = serializeAnnotations(executableElement);
598 if (executableElement is FunctionElement) { 598 if (executableElement is FunctionElement) {
599 SourceRange visibleRange = executableElement.visibleRange; 599 SourceRange visibleRange = executableElement.visibleRange;
600 if (visibleRange != null) { 600 if (visibleRange != null) {
601 b.visibleOffset = visibleRange.offset; 601 b.visibleOffset = visibleRange.offset;
602 b.visibleLength = visibleRange.length; 602 b.visibleLength = visibleRange.length;
603 } 603 }
604 } 604 }
605 b.localFunctions = 605 b.localFunctions =
606 executableElement.functions.map(serializeExecutable).toList(); 606 executableElement.functions.map(serializeExecutable).toList();
607 b.localLabels = executableElement.labels.map(serializeLabel).toList();
607 b.localVariables = 608 b.localVariables =
608 executableElement.localVariables.map(serializeVariable).toList(); 609 executableElement.localVariables.map(serializeVariable).toList();
609 return b; 610 return b;
610 } 611 }
611 612
612 /** 613 /**
613 * Serialize the given [exportElement] into an [UnlinkedExportNonPublic]. 614 * Serialize the given [exportElement] into an [UnlinkedExportNonPublic].
614 */ 615 */
615 UnlinkedExportNonPublicBuilder serializeExportNonPublic( 616 UnlinkedExportNonPublicBuilder serializeExportNonPublic(
616 ExportElement exportElement) { 617 ExportElement exportElement) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 } else { 652 } else {
652 b.offset = importElement.nameOffset; 653 b.offset = importElement.nameOffset;
653 b.uri = importElement.uri; 654 b.uri = importElement.uri;
654 b.uriOffset = importElement.uriOffset; 655 b.uriOffset = importElement.uriOffset;
655 b.uriEnd = importElement.uriEnd; 656 b.uriEnd = importElement.uriEnd;
656 } 657 }
657 return b; 658 return b;
658 } 659 }
659 660
660 /** 661 /**
662 * Serialize the given [label], creating an [UnlinkedLabelBuilder].
663 */
664 UnlinkedLabelBuilder serializeLabel(LabelElementImpl label) {
665 UnlinkedLabelBuilder b = new UnlinkedLabelBuilder();
666 b.name = label.name;
667 b.nameOffset = label.nameOffset;
668 b.isOnSwitchMember = label.isOnSwitchMember;
669 b.isOnSwitchStatement = label.isOnSwitchStatement;
670 return b;
671 }
672
673 /**
661 * Serialize the given [parameter] into an [UnlinkedParam]. 674 * Serialize the given [parameter] into an [UnlinkedParam].
662 */ 675 */
663 UnlinkedParamBuilder serializeParam(ParameterElement parameter, 676 UnlinkedParamBuilder serializeParam(ParameterElement parameter,
664 [Element context]) { 677 [Element context]) {
665 context ??= parameter; 678 context ??= parameter;
666 UnlinkedParamBuilder b = new UnlinkedParamBuilder(); 679 UnlinkedParamBuilder b = new UnlinkedParamBuilder();
667 b.name = parameter.name; 680 b.name = parameter.name;
668 b.nameOffset = parameter.nameOffset; 681 b.nameOffset = parameter.nameOffset;
669 switch (parameter.parameterKind) { 682 switch (parameter.parameterKind) {
670 case ParameterKind.REQUIRED: 683 case ParameterKind.REQUIRED:
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after
1363 exportNames.add(new LinkedExportNameBuilder( 1376 exportNames.add(new LinkedExportNameBuilder(
1364 name: name, 1377 name: name,
1365 dependency: serializeDependency(dependentLibrary), 1378 dependency: serializeDependency(dependentLibrary),
1366 unit: unit, 1379 unit: unit,
1367 kind: kind)); 1380 kind: kind));
1368 } 1381 }
1369 pb.exportNames = exportNames; 1382 pb.exportNames = exportNames;
1370 return pb; 1383 return pb;
1371 } 1384 }
1372 } 1385 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/summary/summarize_ast.dart ('k') | pkg/analyzer/test/generated/resolver_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698