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

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: 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 10 import 'common/names.dart' show
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 LibraryElement importingLibrary, 645 LibraryElement importingLibrary,
646 Uri resolvedUri, 646 Uri resolvedUri,
647 {Spannable node, 647 {Spannable node,
648 bool skipFileWithPartOfTag: false}) { 648 bool skipFileWithPartOfTag: false}) {
649 Uri readableUri = 649 Uri readableUri =
650 uriTranslator.translate(importingLibrary, resolvedUri, node); 650 uriTranslator.translate(importingLibrary, resolvedUri, node);
651 LibraryElement library = libraryCanonicalUriMap[resolvedUri]; 651 LibraryElement library = libraryCanonicalUriMap[resolvedUri];
652 if (library != null) { 652 if (library != null) {
653 return new Future.value(library); 653 return new Future.value(library);
654 } 654 }
655 library = deserializer.readLibrary(resolvedUri); 655 return deserializer.readLibrary(resolvedUri).then((LibraryElement library) {
Siggi Cherem (dart-lang) 2016/04/08 16:55:32 or use `await`?
Johnni Winther 2016/04/11 08:54:04 Aren't we still avoiding the using of async/await
Siggi Cherem (dart-lang) 2016/04/11 17:48:07 are they still blocked on that? I thought it was g
Johnni Winther 2016/04/12 08:05:47 I'll check with sgjesse and let you know.
656 if (library != null) { 656 if (library != null) {
657 return loadDeserializedLibrary(handler, library); 657 return loadDeserializedLibrary(handler, library);
658 } 658 }
659 return reporter.withCurrentElement(importingLibrary, () { 659 return reporter.withCurrentElement(importingLibrary, () {
660 return _readScript(node, readableUri, resolvedUri).then((Script script) { 660 return _readScript(node, readableUri, resolvedUri)
661 if (script == null) return null; 661 .then((Script script) {
662 LibraryElement element = 662 if (script == null) return null;
663 createLibrarySync(handler, script, resolvedUri); 663 LibraryElement element =
664 CompilationUnitElementX compilationUnit = element.entryCompilationUnit; 664 createLibrarySync(handler, script, resolvedUri);
665 if (compilationUnit.partTag != null) { 665 CompilationUnitElementX compilationUnit =
666 if (skipFileWithPartOfTag) { 666 element.entryCompilationUnit;
667 // TODO(johnniwinther): Avoid calling [listener.onLibraryCreated] 667 if (compilationUnit.partTag != null) {
668 // for this library. 668 if (skipFileWithPartOfTag) {
669 libraryCanonicalUriMap.remove(resolvedUri); 669 // TODO(johnniwinther): Avoid calling [listener.onLibraryCreated]
670 return null; 670 // for this library.
671 libraryCanonicalUriMap.remove(resolvedUri);
672 return null;
673 }
674 if (importingLibrary == null) {
675 DiagnosticMessage error = reporter.withCurrentElement(
676 compilationUnit,
677 () => reporter.createMessage(
678 compilationUnit.partTag, MessageKind.MAIN_HAS_PART_OF));
679 reporter.reportError(error);
680 } else {
681 DiagnosticMessage error = reporter.withCurrentElement(
682 compilationUnit,
683 () => reporter.createMessage(
684 compilationUnit.partTag, MessageKind.IMPORT_PART_OF));
685 DiagnosticMessage info = reporter.withCurrentElement(
686 importingLibrary,
687 () => reporter.createMessage(
688 node,
689 MessageKind.IMPORT_PART_OF_HERE));
690 reporter.reportError(error, [info]);
691 }
671 } 692 }
672 if (importingLibrary == null) { 693 return processLibraryTags(handler, element).then((_) {
673 DiagnosticMessage error = reporter.withCurrentElement( 694 reporter.withCurrentElement(element, () {
674 compilationUnit, 695 handler.registerLibraryExports(element);
675 () => reporter.createMessage( 696 });
676 compilationUnit.partTag, MessageKind.MAIN_HAS_PART_OF)); 697 return element;
677 reporter.reportError(error);
678 } else {
679 DiagnosticMessage error = reporter.withCurrentElement(
680 compilationUnit,
681 () => reporter.createMessage(
682 compilationUnit.partTag, MessageKind.IMPORT_PART_OF));
683 DiagnosticMessage info = reporter.withCurrentElement(
684 importingLibrary,
685 () => reporter.createMessage(
686 node,
687 MessageKind.IMPORT_PART_OF_HERE));
688 reporter.reportError(error, [info]);
689 }
690 }
691 return processLibraryTags(handler, element).then((_) {
692 reporter.withCurrentElement(element, () {
693 handler.registerLibraryExports(element);
694 }); 698 });
695 return element;
696 }); 699 });
697 }); 700 });
698 }); 701 });
699 } 702 }
700 703
701 LibraryElement createLibrarySync(LibraryDependencyHandler handler, 704 LibraryElement createLibrarySync(LibraryDependencyHandler handler,
702 Script script, Uri resolvedUri) { 705 Script script, Uri resolvedUri) {
703 LibraryElement element = new LibraryElementX(script, resolvedUri); 706 LibraryElement element = new LibraryElementX(script, resolvedUri);
704 return reporter.withCurrentElement(element, () { 707 return reporter.withCurrentElement(element, () {
705 if (handler != null) { 708 if (handler != null) {
(...skipping 811 matching lines...) Expand 10 before | Expand all | Expand 10 after
1517 /// Called after a request to load a library. The [results] will include all 1520 /// Called after a request to load a library. The [results] will include all
1518 /// transitive libraries loaded as a result of the initial request. 1521 /// transitive libraries loaded as a result of the initial request.
1519 Future onLibrariesLoaded(LoadedLibraries results); 1522 Future onLibrariesLoaded(LoadedLibraries results);
1520 1523
1521 /// Called whenever a library element is created. 1524 /// Called whenever a library element is created.
1522 void onLibraryCreated(LibraryElement library); 1525 void onLibraryCreated(LibraryElement library);
1523 1526
1524 /// Called whenever a library is scanned from a script file. 1527 /// Called whenever a library is scanned from a script file.
1525 Future onLibraryScanned(LibraryElement library, LibraryLoader loader); 1528 Future onLibraryScanned(LibraryElement library, LibraryLoader loader);
1526 } 1529 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698