OLD | NEW |
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 file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer.test.src.summary.resynthesize_ast_test; | 5 library analyzer.test.src.summary.resynthesize_ast_test; |
6 | 6 |
7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
8 import 'package:analyzer/dart/element/element.dart'; | 8 import 'package:analyzer/dart/element/element.dart'; |
9 import 'package:analyzer/src/dart/element/element.dart'; | 9 import 'package:analyzer/src/dart/element/element.dart'; |
10 import 'package:analyzer/src/generated/engine.dart' | 10 import 'package:analyzer/src/generated/engine.dart' |
(...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
755 | 755 |
756 UnlinkedUnit getUnit(String absoluteUri) { | 756 UnlinkedUnit getUnit(String absoluteUri) { |
757 UnlinkedUnit unit = uriToUnit[absoluteUri] ?? | 757 UnlinkedUnit unit = uriToUnit[absoluteUri] ?? |
758 SerializedMockSdk.instance.uriToUnlinkedUnit[absoluteUri]; | 758 SerializedMockSdk.instance.uriToUnlinkedUnit[absoluteUri]; |
759 if (unit == null && !allowMissingFiles) { | 759 if (unit == null && !allowMissingFiles) { |
760 fail('Linker unexpectedly requested unit for "$absoluteUri".'); | 760 fail('Linker unexpectedly requested unit for "$absoluteUri".'); |
761 } | 761 } |
762 return unit; | 762 return unit; |
763 } | 763 } |
764 | 764 |
765 Set<String> nonSdkLibraryUris = context.sources | 765 Set<String> nonSdkLibraryUris = serializedSources |
766 .where((Source source) => | 766 .where((Source source) => |
767 !source.isInSystemLibrary && | 767 !source.isInSystemLibrary && |
768 context.computeKindOf(source) == SourceKind.LIBRARY) | 768 context.computeKindOf(source) == SourceKind.LIBRARY) |
769 .map((Source source) => source.uri.toString()) | 769 .map((Source source) => source.uri.toString()) |
770 .toSet(); | 770 .toSet(); |
771 | 771 |
772 Map<String, LinkedLibrary> linkedSummaries = link(nonSdkLibraryUris, | 772 Map<String, LinkedLibrary> linkedSummaries = link( |
773 getDependency, getUnit, context.analysisOptions.strongMode); | 773 nonSdkLibraryUris, |
| 774 getDependency, |
| 775 getUnit, |
| 776 context.declaredVariables.get, |
| 777 context.analysisOptions.strongMode); |
774 | 778 |
775 return new TestSummaryResynthesizer( | 779 return new TestSummaryResynthesizer( |
776 null, | 780 null, |
777 context, | 781 context, |
778 new Map<String, UnlinkedUnit>() | 782 new Map<String, UnlinkedUnit>() |
779 ..addAll(SerializedMockSdk.instance.uriToUnlinkedUnit) | 783 ..addAll(SerializedMockSdk.instance.uriToUnlinkedUnit) |
780 ..addAll(unlinkedSummaries), | 784 ..addAll(unlinkedSummaries), |
781 new Map<String, LinkedLibrary>() | 785 new Map<String, LinkedLibrary>() |
782 ..addAll(SerializedMockSdk.instance.uriToLinkedLibrary) | 786 ..addAll(SerializedMockSdk.instance.uriToLinkedLibrary) |
783 ..addAll(linkedSummaries), | 787 ..addAll(linkedSummaries), |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
836 UnlinkedUnit getPart(String relativeUri) { | 840 UnlinkedUnit getPart(String relativeUri) { |
837 return _getUnlinkedUnit(resolveRelativeUri(relativeUri)); | 841 return _getUnlinkedUnit(resolveRelativeUri(relativeUri)); |
838 } | 842 } |
839 | 843 |
840 UnlinkedPublicNamespace getImport(String relativeUri) { | 844 UnlinkedPublicNamespace getImport(String relativeUri) { |
841 return getPart(relativeUri)?.publicNamespace; | 845 return getPart(relativeUri)?.publicNamespace; |
842 } | 846 } |
843 | 847 |
844 UnlinkedUnit definingUnit = _getUnlinkedUnit(librarySource); | 848 UnlinkedUnit definingUnit = _getUnlinkedUnit(librarySource); |
845 if (definingUnit != null) { | 849 if (definingUnit != null) { |
846 LinkedLibraryBuilder linkedLibrary = | 850 LinkedLibraryBuilder linkedLibrary = prelink( |
847 prelink(definingUnit, getPart, getImport); | 851 definingUnit, getPart, getImport, context.declaredVariables.get); |
848 linkedLibrary.dependencies.skip(1).forEach((LinkedDependency d) { | 852 linkedLibrary.dependencies.skip(1).forEach((LinkedDependency d) { |
849 _serializeLibrary(resolveRelativeUri(d.uri)); | 853 _serializeLibrary(resolveRelativeUri(d.uri)); |
850 }); | 854 }); |
851 } | 855 } |
852 } | 856 } |
853 } | 857 } |
854 | 858 |
855 /** | 859 /** |
856 * Interface that [_AstResynthesizeTestMixin] requires of classes it's mixed | 860 * Interface that [_AstResynthesizeTestMixin] requires of classes it's mixed |
857 * into. We can't place the getter below into [_AstResynthesizeTestMixin] | 861 * into. We can't place the getter below into [_AstResynthesizeTestMixin] |
858 * directly, because then it would be overriding a field at the site where the | 862 * directly, because then it would be overriding a field at the site where the |
859 * mixin is instantiated. | 863 * mixin is instantiated. |
860 */ | 864 */ |
861 abstract class _AstResynthesizeTestMixinInterface { | 865 abstract class _AstResynthesizeTestMixinInterface { |
862 /** | 866 /** |
863 * A test should return `true` to indicate that a missing file at the time of | 867 * A test should return `true` to indicate that a missing file at the time of |
864 * summary resynthesis shouldn't trigger an error. | 868 * summary resynthesis shouldn't trigger an error. |
865 */ | 869 */ |
866 bool get allowMissingFiles; | 870 bool get allowMissingFiles; |
867 } | 871 } |
OLD | NEW |