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

Side by Side Diff: lib/kernel.dart

Issue 2203313002: Generate all imported libraries. (Closed) Base URL: git@github.com:dart-lang/rasta.git@private_names
Patch Set: Created 4 years, 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 library rasta.kernel; 5 library rasta.kernel;
6 6
7 import 'dart:async' show 7 import 'dart:async' show
8 Future; 8 Future;
9 9
10 import 'dart:collection' show 10 import 'dart:collection' show
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 seen.add(library); 556 seen.add(library);
557 LibraryElement core = 557 LibraryElement core =
558 compiler.libraryLoader.lookupLibrary(Uri.parse("dart:core")); 558 compiler.libraryLoader.lookupLibrary(Uri.parse("dart:core"));
559 if (seen.add(core)) { 559 if (seen.add(core)) {
560 // `dart:core` is implicitly imported by most libraries, and for some 560 // `dart:core` is implicitly imported by most libraries, and for some
561 // reason not included in `library.imports` below. 561 // reason not included in `library.imports` below.
562 processLater(core); 562 processLater(core);
563 } 563 }
564 while (notProcessed.isNotEmpty) { 564 while (notProcessed.isNotEmpty) {
565 LibraryElement library = notProcessed.removeFirst(); 565 LibraryElement library = notProcessed.removeFirst();
566 ir.Library irLibrary = libraries[library]; 566 ir.Library irLibrary = libraryToIr(library);
567 for (ImportElement import in library.imports) { 567 for (ImportElement import in library.imports) {
568 if (seen.add(import.importedLibrary)) { 568 if (seen.add(import.importedLibrary)) {
569 processLater(import.importedLibrary); 569 processLater(import.importedLibrary);
570 } 570 }
571 } 571 }
572 for (ExportElement export in library.exports) { 572 for (ExportElement export in library.exports) {
573 if (seen.add(export.exportedLibrary)) { 573 if (seen.add(export.exportedLibrary)) {
574 processLater(export.exportedLibrary); 574 processLater(export.exportedLibrary);
575 } 575 }
576 } 576 }
577 for (ImportElement import in library.implementation.imports) { 577 for (ImportElement import in library.implementation.imports) {
578 if (seen.add(import.importedLibrary)) { 578 if (seen.add(import.importedLibrary)) {
579 processLater(import.importedLibrary); 579 processLater(import.importedLibrary);
580 } 580 }
581 } 581 }
582 for (ExportElement export in library.implementation.exports) { 582 for (ExportElement export in library.implementation.exports) {
583 if (seen.add(export.exportedLibrary)) { 583 if (seen.add(export.exportedLibrary)) {
584 processLater(export.exportedLibrary); 584 processLater(export.exportedLibrary);
585 } 585 }
586 } 586 }
587 if (irLibrary != null) { 587 if (irLibrary != null) {
588 result.add(irLibrary); 588 result.add(irLibrary);
589 } 589 }
590 } 590 }
591 processWorkQueue();
591 return result; 592 return result;
592 } 593 }
593 594
594 /// Returns true if [element] is synthesized to recover or represent a 595 /// Returns true if [element] is synthesized to recover or represent a
595 /// semantic error, for example, missing, duplicated, or ambiguous elements. 596 /// semantic error, for example, missing, duplicated, or ambiguous elements.
596 /// However, returns false for elements that have an unrecoverable syntax 597 /// However, returns false for elements that have an unrecoverable syntax
597 /// error. Both kinds of element will return true from [Element.isMalformed], 598 /// error. Both kinds of element will return true from [Element.isMalformed],
598 /// but they must be handled differently. For example, a static call to 599 /// but they must be handled differently. For example, a static call to
599 /// synthetic error element should be compiled to [ir.InvalidExpression], 600 /// synthetic error element should be compiled to [ir.InvalidExpression],
600 /// whereas a static call to a method which has a syntax error should be 601 /// whereas a static call to a method which has a syntax error should be
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 } 685 }
685 686
686 class ConstructorTarget { 687 class ConstructorTarget {
687 final ConstructorElement element; 688 final ConstructorElement element;
688 final DartType type; 689 final DartType type;
689 690
690 ConstructorTarget(this.element, this.type); 691 ConstructorTarget(this.element, this.type);
691 692
692 String toString() => "ConstructorTarget($element, $type)"; 693 String toString() => "ConstructorTarget($element, $type)";
693 } 694 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698