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

Side by Side Diff: pkg/compiler/lib/src/library_loader.dart

Issue 1873573004: Serialize TreeElements (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Check only the last test to avoid timeout. Created 4 years, 8 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 dart2js.library_loader; 5 library dart2js.library_loader;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'common.dart'; 9 import 'common.dart';
10 import 'common/names.dart' show Uris; 10 import 'common/names.dart' show Uris;
(...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 */ 627 */
628 Future<LibraryElement> createLibrary(LibraryDependencyHandler handler, 628 Future<LibraryElement> createLibrary(LibraryDependencyHandler handler,
629 LibraryElement importingLibrary, Uri resolvedUri, 629 LibraryElement importingLibrary, Uri resolvedUri,
630 {Spannable node, bool skipFileWithPartOfTag: false}) { 630 {Spannable node, bool skipFileWithPartOfTag: false}) {
631 Uri readableUri = 631 Uri readableUri =
632 uriTranslator.translate(importingLibrary, resolvedUri, node); 632 uriTranslator.translate(importingLibrary, resolvedUri, node);
633 LibraryElement library = libraryCanonicalUriMap[resolvedUri]; 633 LibraryElement library = libraryCanonicalUriMap[resolvedUri];
634 if (library != null) { 634 if (library != null) {
635 return new Future.value(library); 635 return new Future.value(library);
636 } 636 }
637 library = deserializer.readLibrary(resolvedUri); 637 return deserializer.readLibrary(resolvedUri).then((LibraryElement library) {
638 if (library != null) { 638 if (library != null) {
639 return loadDeserializedLibrary(handler, library); 639 return loadDeserializedLibrary(handler, library);
640 } 640 }
641 return reporter.withCurrentElement(importingLibrary, () { 641 return reporter.withCurrentElement(importingLibrary, () {
642 return _readScript(node, readableUri, resolvedUri).then((Script script) { 642 return _readScript(node, readableUri, resolvedUri)
643 if (script == null) return null; 643 .then((Script script) {
644 LibraryElement element = 644 if (script == null) return null;
645 createLibrarySync(handler, script, resolvedUri); 645 LibraryElement element =
646 CompilationUnitElementX compilationUnit = element.entryCompilationUnit; 646 createLibrarySync(handler, script, resolvedUri);
647 if (compilationUnit.partTag != null) { 647 CompilationUnitElementX compilationUnit =
648 if (skipFileWithPartOfTag) { 648 element.entryCompilationUnit;
649 // TODO(johnniwinther): Avoid calling [listener.onLibraryCreated] 649 if (compilationUnit.partTag != null) {
650 // for this library. 650 if (skipFileWithPartOfTag) {
651 libraryCanonicalUriMap.remove(resolvedUri); 651 // TODO(johnniwinther): Avoid calling [listener.onLibraryCreated]
652 return null; 652 // for this library.
653 libraryCanonicalUriMap.remove(resolvedUri);
654 return null;
655 }
656 if (importingLibrary == null) {
657 DiagnosticMessage error = reporter.withCurrentElement(
658 compilationUnit,
659 () => reporter.createMessage(
660 compilationUnit.partTag, MessageKind.MAIN_HAS_PART_OF));
661 reporter.reportError(error);
662 } else {
663 DiagnosticMessage error = reporter.withCurrentElement(
664 compilationUnit,
665 () => reporter.createMessage(
666 compilationUnit.partTag, MessageKind.IMPORT_PART_OF));
667 DiagnosticMessage info = reporter.withCurrentElement(
668 importingLibrary,
669 () => reporter.createMessage(
670 node, MessageKind.IMPORT_PART_OF_HERE));
671 reporter.reportError(error, [info]);
672 }
653 } 673 }
654 if (importingLibrary == null) { 674 return processLibraryTags(handler, element).then((_) {
655 DiagnosticMessage error = reporter.withCurrentElement( 675 reporter.withCurrentElement(element, () {
656 compilationUnit, 676 handler.registerLibraryExports(element);
657 () => reporter.createMessage( 677 });
658 compilationUnit.partTag, MessageKind.MAIN_HAS_PART_OF)); 678 return element;
659 reporter.reportError(error);
660 } else {
661 DiagnosticMessage error = reporter.withCurrentElement(
662 compilationUnit,
663 () => reporter.createMessage(
664 compilationUnit.partTag, MessageKind.IMPORT_PART_OF));
665 DiagnosticMessage info = reporter.withCurrentElement(
666 importingLibrary,
667 () => reporter.createMessage(
668 node, MessageKind.IMPORT_PART_OF_HERE));
669 reporter.reportError(error, [info]);
670 }
671 }
672 return processLibraryTags(handler, element).then((_) {
673 reporter.withCurrentElement(element, () {
674 handler.registerLibraryExports(element);
675 }); 679 });
676 return element;
677 }); 680 });
678 }); 681 });
679 }); 682 });
680 } 683 }
681 684
682 LibraryElement createLibrarySync( 685 LibraryElement createLibrarySync(
683 LibraryDependencyHandler handler, Script script, Uri resolvedUri) { 686 LibraryDependencyHandler handler, Script script, Uri resolvedUri) {
684 LibraryElement element = new LibraryElementX(script, resolvedUri); 687 LibraryElement element = new LibraryElementX(script, resolvedUri);
685 return reporter.withCurrentElement(element, () { 688 return reporter.withCurrentElement(element, () {
686 if (handler != null) { 689 if (handler != null) {
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1472 /// Called after a request to load a library. The [results] will include all 1475 /// Called after a request to load a library. The [results] will include all
1473 /// transitive libraries loaded as a result of the initial request. 1476 /// transitive libraries loaded as a result of the initial request.
1474 Future onLibrariesLoaded(LoadedLibraries results); 1477 Future onLibrariesLoaded(LoadedLibraries results);
1475 1478
1476 /// Called whenever a library element is created. 1479 /// Called whenever a library element is created.
1477 void onLibraryCreated(LibraryElement library); 1480 void onLibraryCreated(LibraryElement library);
1478 1481
1479 /// Called whenever a library is scanned from a script file. 1482 /// Called whenever a library is scanned from a script file.
1480 Future onLibraryScanned(LibraryElement library, LibraryLoader loader); 1483 Future onLibraryScanned(LibraryElement library, LibraryLoader loader);
1481 } 1484 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/compiler.dart ('k') | pkg/compiler/lib/src/serialization/constant_serialization.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698