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

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

Issue 1363993004: Report info messages together with their error, warning, or hint. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 3 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 deferred_load; 5 library deferred_load;
6 6
7 import 'common/backend_api.dart' show 7 import 'common/backend_api.dart' show
8 Backend; 8 Backend;
9 import 'common/tasks.dart' show 9 import 'common/tasks.dart' show
10 CompilerTask; 10 CompilerTask;
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 for (ImportElement import in library.imports) { 722 for (ImportElement import in library.imports) {
723 /// Give an error if the old annotation-based syntax has been used. 723 /// Give an error if the old annotation-based syntax has been used.
724 List<MetadataAnnotation> metadataList = import.metadata; 724 List<MetadataAnnotation> metadataList = import.metadata;
725 if (metadataList != null) { 725 if (metadataList != null) {
726 for (MetadataAnnotation metadata in metadataList) { 726 for (MetadataAnnotation metadata in metadataList) {
727 metadata.ensureResolved(compiler); 727 metadata.ensureResolved(compiler);
728 ConstantValue value = 728 ConstantValue value =
729 compiler.constants.getConstantValue(metadata.constant); 729 compiler.constants.getConstantValue(metadata.constant);
730 Element element = value.getType(compiler.coreTypes).element; 730 Element element = value.getType(compiler.coreTypes).element;
731 if (element == deferredLibraryClass) { 731 if (element == deferredLibraryClass) {
732 compiler.reportError( 732 compiler.reportErrorMessage(
733 import, MessageKind.DEFERRED_OLD_SYNTAX); 733 import, MessageKind.DEFERRED_OLD_SYNTAX);
734 } 734 }
735 } 735 }
736 } 736 }
737 737
738 String prefix = (import.prefix != null) 738 String prefix = (import.prefix != null)
739 ? import.prefix.name 739 ? import.prefix.name
740 : null; 740 : null;
741 // The last import we saw with the same prefix. 741 // The last import we saw with the same prefix.
742 ImportElement previousDeferredImport = prefixDeferredImport[prefix]; 742 ImportElement previousDeferredImport = prefixDeferredImport[prefix];
743 if (import.isDeferred) { 743 if (import.isDeferred) {
744 _DeferredImport key = new _DeclaredDeferredImport(import); 744 _DeferredImport key = new _DeclaredDeferredImport(import);
745 LibraryElement importedLibrary = import.importedLibrary; 745 LibraryElement importedLibrary = import.importedLibrary;
746 _allDeferredImports[key] = importedLibrary; 746 _allDeferredImports[key] = importedLibrary;
747 747
748 if (prefix == null) { 748 if (prefix == null) {
749 compiler.reportError(import, 749 compiler.reportErrorMessage(
750 import,
750 MessageKind.DEFERRED_LIBRARY_WITHOUT_PREFIX); 751 MessageKind.DEFERRED_LIBRARY_WITHOUT_PREFIX);
751 } else { 752 } else {
752 prefixDeferredImport[prefix] = import; 753 prefixDeferredImport[prefix] = import;
753 _deferredImportDescriptions[key] = 754 _deferredImportDescriptions[key] =
754 new ImportDescription(import, library, compiler); 755 new ImportDescription(import, library, compiler);
755 } 756 }
756 isProgramSplit = true; 757 isProgramSplit = true;
757 lastDeferred = import; 758 lastDeferred = import;
758 } 759 }
759 if (prefix != null) { 760 if (prefix != null) {
760 if (previousDeferredImport != null || 761 if (previousDeferredImport != null ||
761 (import.isDeferred && usedPrefixes.contains(prefix))) { 762 (import.isDeferred && usedPrefixes.contains(prefix))) {
762 ImportElement failingImport = (previousDeferredImport != null) 763 ImportElement failingImport = (previousDeferredImport != null)
763 ? previousDeferredImport 764 ? previousDeferredImport
764 : import; 765 : import;
765 compiler.reportError(failingImport.prefix, 766 compiler.reportErrorMessage(
767 failingImport.prefix,
766 MessageKind.DEFERRED_LIBRARY_DUPLICATE_PREFIX); 768 MessageKind.DEFERRED_LIBRARY_DUPLICATE_PREFIX);
767 } 769 }
768 usedPrefixes.add(prefix); 770 usedPrefixes.add(prefix);
769 } 771 }
770 } 772 }
771 }); 773 });
772 } 774 }
773 if (isProgramSplit) { 775 if (isProgramSplit) {
774 isProgramSplit = compiler.backend.enableDeferredLoadingIfSupported( 776 isProgramSplit = compiler.backend.enableDeferredLoadingIfSupported(
775 lastDeferred, compiler.globalDependencies); 777 lastDeferred, compiler.globalDependencies);
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 return result; 938 return result;
937 } 939 }
938 940
939 bool operator ==(other) { 941 bool operator ==(other) {
940 if (other is! _DeclaredDeferredImport) return false; 942 if (other is! _DeclaredDeferredImport) return false;
941 return declaration == other.declaration; 943 return declaration == other.declaration;
942 } 944 }
943 945
944 int get hashCode => declaration.hashCode * 17; 946 int get hashCode => declaration.hashCode * 17;
945 } 947 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698