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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/elements/modelx.dart

Issue 11967010: Internal libraries supported. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update MockCompiler Created 7 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 elements.modelx; 5 library elements.modelx;
6 6
7 import 'dart:uri'; 7 import 'dart:uri';
8 8
9 import 'elements.dart'; 9 import 'elements.dart';
10 import '../../compiler.dart' as api; 10 import '../../compiler.dart' as api;
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 MessageKind.LIBRARY_NAME_MISMATCH.error([expectedName]), 515 MessageKind.LIBRARY_NAME_MISMATCH.error([expectedName]),
516 api.Diagnostic.WARNING); 516 api.Diagnostic.WARNING);
517 } 517 }
518 } 518 }
519 } 519 }
520 520
521 bool get hasMembers => !localMembers.isEmpty; 521 bool get hasMembers => !localMembers.isEmpty;
522 } 522 }
523 523
524 class LibraryElementX extends ElementX implements LibraryElement { 524 class LibraryElementX extends ElementX implements LibraryElement {
525 final Uri uri; 525 final Uri canonicalUri;
526 CompilationUnitElement entryCompilationUnit; 526 CompilationUnitElement entryCompilationUnit;
527 Link<CompilationUnitElement> compilationUnits = 527 Link<CompilationUnitElement> compilationUnits =
528 const Link<CompilationUnitElement>(); 528 const Link<CompilationUnitElement>();
529 Link<LibraryTag> tags = const Link<LibraryTag>(); 529 Link<LibraryTag> tags = const Link<LibraryTag>();
530 LibraryName libraryTag; 530 LibraryName libraryTag;
531 bool canUseNative = false; 531 bool canUseNative = false;
532 Link<Element> localMembers = const Link<Element>(); 532 Link<Element> localMembers = const Link<Element>();
533 final ScopeX localScope = new ScopeX(); 533 final ScopeX localScope = new ScopeX();
534 534
535 /** 535 /**
(...skipping 21 matching lines...) Expand all
557 /** 557 /**
558 * Link for elements exported either through export declarations or through 558 * Link for elements exported either through export declarations or through
559 * declaration. This field should not be accessed directly but instead through 559 * declaration. This field should not be accessed directly but instead through
560 * the [exports] getter. 560 * the [exports] getter.
561 * 561 *
562 * [LibraryDependencyHandler] sets this field through [setExports] when the 562 * [LibraryDependencyHandler] sets this field through [setExports] when the
563 * library is loaded. 563 * library is loaded.
564 */ 564 */
565 Link<Element> slotForExports; 565 Link<Element> slotForExports;
566 566
567 LibraryElementX(Script script, [Uri uri, LibraryElement this.origin]) 567 LibraryElementX(Script script, [Uri canonicalUri, LibraryElement this.origin])
568 : this.uri = ((uri == null) ? script.uri : uri), 568 : this.canonicalUri = ((canonicalUri == null) ? script.uri : canonicalUri),
569 importScope = new Map<SourceString, Element>(), 569 importScope = new Map<SourceString, Element>(),
570 super(new SourceString(script.name), ElementKind.LIBRARY, null) { 570 super(new SourceString(script.name), ElementKind.LIBRARY, null) {
571 entryCompilationUnit = new CompilationUnitElementX(script, this); 571 entryCompilationUnit = new CompilationUnitElementX(script, this);
572 if (isPatch) { 572 if (isPatch) {
573 origin.patch = this; 573 origin.patch = this;
574 } 574 }
575 } 575 }
576 576
577 bool get isPatched => patch != null; 577 bool get isPatched => patch != null;
578 bool get isPatch => origin != null; 578 bool get isPatch => origin != null;
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
721 /** 721 /**
722 * Returns the library name (as defined by the #library tag) or for script 722 * Returns the library name (as defined by the #library tag) or for script
723 * (which have no #library tag) the script file name. The latter case is used 723 * (which have no #library tag) the script file name. The latter case is used
724 * to private 'library name' for scripts to use for instance in dartdoc. 724 * to private 'library name' for scripts to use for instance in dartdoc.
725 */ 725 */
726 String getLibraryOrScriptName() { 726 String getLibraryOrScriptName() {
727 if (libraryTag != null) { 727 if (libraryTag != null) {
728 return libraryTag.name.toString(); 728 return libraryTag.name.toString();
729 } else { 729 } else {
730 // Use the file name as script name. 730 // Use the file name as script name.
731 String path = uri.path; 731 String path = canonicalUri.path;
732 return path.substring(path.lastIndexOf('/') + 1); 732 return path.substring(path.lastIndexOf('/') + 1);
733 } 733 }
734 } 734 }
735 735
736 Scope buildScope() => new LibraryScope(this); 736 Scope buildScope() => new LibraryScope(this);
737 737
738 bool get isPlatformLibrary => uri.scheme == "dart"; 738 bool get isPlatformLibrary => canonicalUri.scheme == "dart";
739
740 bool get isInternalLibrary =>
741 isPlatformLibrary && canonicalUri.path.startsWith('_');
739 742
740 String toString() { 743 String toString() {
741 if (origin != null) { 744 if (origin != null) {
742 return 'patch library(${getLibraryOrScriptName()})'; 745 return 'patch library(${getLibraryOrScriptName()})';
743 } else if (patch != null) { 746 } else if (patch != null) {
744 return 'origin library(${getLibraryOrScriptName()})'; 747 return 'origin library(${getLibraryOrScriptName()})';
745 } else { 748 } else {
746 return 'library(${getLibraryOrScriptName()})'; 749 return 'library(${getLibraryOrScriptName()})';
747 } 750 }
748 } 751 }
(...skipping 1201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1950 1953
1951 MetadataAnnotation ensureResolved(Compiler compiler) { 1954 MetadataAnnotation ensureResolved(Compiler compiler) {
1952 if (resolutionState == STATE_NOT_STARTED) { 1955 if (resolutionState == STATE_NOT_STARTED) {
1953 compiler.resolver.resolveMetadataAnnotation(this); 1956 compiler.resolver.resolveMetadataAnnotation(this);
1954 } 1957 }
1955 return this; 1958 return this;
1956 } 1959 }
1957 1960
1958 String toString() => 'MetadataAnnotation($value, $resolutionState)'; 1961 String toString() => 'MetadataAnnotation($value, $resolutionState)';
1959 } 1962 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698