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

Side by Side Diff: pkg/analyzer/test/src/task/dart_test.dart

Issue 1045113005: Use TaskInputBuilder to compute import/export source closures. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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 | Annotate | Revision Log
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 test.src.task.dart_test; 5 library test.src.task.dart_test;
6 6
7 import 'package:analyzer/file_system/file_system.dart'; 7 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart'; 8 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/src/context/cache.dart'; 9 import 'package:analyzer/src/context/cache.dart';
10 import 'package:analyzer/src/generated/ast.dart'; 10 import 'package:analyzer/src/generated/ast.dart';
(...skipping 17 matching lines...) Expand all
28 import '../../generated/test_support.dart'; 28 import '../../generated/test_support.dart';
29 import '../../reflective_tests.dart'; 29 import '../../reflective_tests.dart';
30 import '../mock_sdk.dart'; 30 import '../mock_sdk.dart';
31 31
32 main() { 32 main() {
33 groupSep = ' | '; 33 groupSep = ' | ';
34 runReflectiveTests(BuildClassConstructorsTaskTest); 34 runReflectiveTests(BuildClassConstructorsTaskTest);
35 runReflectiveTests(BuildCompilationUnitElementTaskTest); 35 runReflectiveTests(BuildCompilationUnitElementTaskTest);
36 runReflectiveTests(BuildDirectiveElementsTaskTest); 36 runReflectiveTests(BuildDirectiveElementsTaskTest);
37 runReflectiveTests(BuildEnumMemberElementsTaskTest); 37 runReflectiveTests(BuildEnumMemberElementsTaskTest);
38 runReflectiveTests(BuildExportSourceClosureTaskTest); 38 runReflectiveTests(BuildSourceClosuresTaskTest);
39 runReflectiveTests(BuildExportNamespaceTaskTest); 39 runReflectiveTests(BuildExportNamespaceTaskTest);
40 runReflectiveTests(BuildFunctionTypeAliasesTaskTest); 40 runReflectiveTests(BuildFunctionTypeAliasesTaskTest);
41 runReflectiveTests(BuildLibraryConstructorsTaskTest); 41 runReflectiveTests(BuildLibraryConstructorsTaskTest);
42 runReflectiveTests(BuildLibraryElementTaskTest); 42 runReflectiveTests(BuildLibraryElementTaskTest);
43 runReflectiveTests(BuildPublicNamespaceTaskTest); 43 runReflectiveTests(BuildPublicNamespaceTaskTest);
44 runReflectiveTests(BuildTypeProviderTaskTest); 44 runReflectiveTests(BuildTypeProviderTaskTest);
45 runReflectiveTests(GenerateHintsTaskTest); 45 runReflectiveTests(GenerateHintsTaskTest);
46 runReflectiveTests(ParseDartTaskTest); 46 runReflectiveTests(ParseDartTaskTest);
47 runReflectiveTests(ResolveUnitTypeNamesTaskTest); 47 runReflectiveTests(ResolveUnitTypeNamesTaskTest);
48 runReflectiveTests(ResolveLibraryTypeNamesTaskTest); 48 runReflectiveTests(ResolveLibraryTypeNamesTaskTest);
(...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 { 611 {
612 LibraryElement library = outputs[LIBRARY_ELEMENT4]; 612 LibraryElement library = outputs[LIBRARY_ELEMENT4];
613 Namespace namespace = library.exportNamespace; 613 Namespace namespace = library.exportNamespace;
614 Iterable<String> definedKeys = namespace.definedNames.keys; 614 Iterable<String> definedKeys = namespace.definedNames.keys;
615 expect(definedKeys, unorderedEquals(['A', 'topLevelB', 'topLevelB='])); 615 expect(definedKeys, unorderedEquals(['A', 'topLevelB', 'topLevelB=']));
616 } 616 }
617 } 617 }
618 } 618 }
619 619
620 @reflectiveTest 620 @reflectiveTest
621 class BuildExportSourceClosureTaskTest extends _AbstractDartTaskTest {
622 test_perform() {
623 Source sourceA = _newSource('/a.dart', '''
624 library lib_a;
625 export 'b.dart';
626 ''');
627 Source sourceB = _newSource('/b.dart', '''
628 library lib_b;
629 export 'b.dart';
630 ''');
631 Source sourceC = _newSource('/c.dart', '''
632 library lib_c;
633 export 'a.dart';
634 ''');
635 Source sourceD = _newSource('/d.dart', '''
636 library lib_d;
637 ''');
638 // a.dart
639 {
640 _computeResult(sourceA, EXPORT_SOURCE_CLOSURE);
641 expect(task, new isInstanceOf<BuildExportSourceClosureTask>());
642 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
643 expect(closure, unorderedEquals([sourceA, sourceB]));
644 }
645 // c.dart
646 {
647 _computeResult(sourceC, EXPORT_SOURCE_CLOSURE);
648 expect(task, new isInstanceOf<BuildExportSourceClosureTask>());
649 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
650 expect(closure, unorderedEquals([sourceA, sourceB, sourceC]));
651 }
652 // d.dart
653 {
654 _computeResult(sourceD, EXPORT_SOURCE_CLOSURE);
655 expect(task, new isInstanceOf<BuildExportSourceClosureTask>());
656 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
657 expect(closure, unorderedEquals([sourceD]));
658 }
659 }
660 }
661
662 @reflectiveTest
663 class BuildFunctionTypeAliasesTaskTest extends _AbstractDartTaskTest { 621 class BuildFunctionTypeAliasesTaskTest extends _AbstractDartTaskTest {
664 test_perform() { 622 test_perform() {
665 Source source = _newSource('/test.dart', ''' 623 Source source = _newSource('/test.dart', '''
666 typedef int F(G g); 624 typedef int F(G g);
667 typedef String G(int p); 625 typedef String G(int p);
668 '''); 626 ''');
669 LibraryUnitTarget target = new LibraryUnitTarget(source, source); 627 LibraryUnitTarget target = new LibraryUnitTarget(source, source);
670 _computeResult(target, RESOLVED_UNIT3); 628 _computeResult(target, RESOLVED_UNIT3);
671 expect(task, new isInstanceOf<BuildFunctionTypeAliasesTask>()); 629 expect(task, new isInstanceOf<BuildFunctionTypeAliasesTask>());
672 // validate 630 // validate
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
1054 _computeResult(sources.first, LIBRARY_ELEMENT3); 1012 _computeResult(sources.first, LIBRARY_ELEMENT3);
1055 expect(task, new isInstanceOf<BuildPublicNamespaceTask>()); 1013 expect(task, new isInstanceOf<BuildPublicNamespaceTask>());
1056 // validate 1014 // validate
1057 LibraryElement library = outputs[LIBRARY_ELEMENT3]; 1015 LibraryElement library = outputs[LIBRARY_ELEMENT3];
1058 Namespace namespace = library.publicNamespace; 1016 Namespace namespace = library.publicNamespace;
1059 expect(namespace.definedNames.keys, unorderedEquals(['a', 'd'])); 1017 expect(namespace.definedNames.keys, unorderedEquals(['a', 'd']));
1060 } 1018 }
1061 } 1019 }
1062 1020
1063 @reflectiveTest 1021 @reflectiveTest
1022 class BuildSourceClosuresTaskTest extends _AbstractDartTaskTest {
1023 test_perform_exportClosure() {
1024 Source sourceA = _newSource('/a.dart', '''
1025 library lib_a;
1026 export 'b.dart';
1027 ''');
1028 Source sourceB = _newSource('/b.dart', '''
1029 library lib_b;
1030 export 'c.dart';
1031 ''');
1032 Source sourceC = _newSource('/c.dart', '''
1033 library lib_c;
1034 export 'a.dart';
1035 ''');
1036 Source sourceD = _newSource('/d.dart', '''
1037 library lib_d;
1038 ''');
1039 // a.dart
1040 {
1041 _computeResult(sourceA, EXPORT_SOURCE_CLOSURE);
1042 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1043 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
1044 expect(closure, unorderedEquals([sourceA, sourceB, sourceC]));
1045 }
1046 // c.dart
1047 {
1048 _computeResult(sourceC, EXPORT_SOURCE_CLOSURE);
1049 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1050 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
1051 expect(closure, unorderedEquals([sourceA, sourceB, sourceC]));
1052 }
1053 // d.dart
1054 {
1055 _computeResult(sourceD, EXPORT_SOURCE_CLOSURE);
1056 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1057 List<Source> closure = outputs[EXPORT_SOURCE_CLOSURE];
1058 expect(closure, unorderedEquals([sourceD]));
1059 }
1060 }
1061
1062 test_perform_importClosure() {
1063 Source sourceA = _newSource('/a.dart', '''
1064 library lib_a;
1065 import 'b.dart';
1066 ''');
1067 Source sourceB = _newSource('/b.dart', '''
1068 library lib_b;
1069 import 'c.dart';
1070 ''');
1071 Source sourceC = _newSource('/c.dart', '''
1072 library lib_c;
1073 import 'a.dart';
1074 ''');
1075 Source sourceD = _newSource('/d.dart', '''
1076 library lib_d;
1077 ''');
1078 Source coreSource = context.sourceFactory.resolveUri(null, 'dart:core');
1079 // a.dart
1080 {
1081 _computeResult(sourceA, IMPORT_SOURCE_CLOSURE);
1082 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1083 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE];
1084 expect(closure, contains(sourceA));
1085 expect(closure, contains(sourceB));
1086 expect(closure, contains(sourceC));
1087 expect(closure, contains(coreSource));
1088 }
1089 // c.dart
1090 {
1091 _computeResult(sourceC, IMPORT_SOURCE_CLOSURE);
1092 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1093 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE];
1094 expect(closure, contains(sourceA));
1095 expect(closure, contains(sourceB));
1096 expect(closure, contains(sourceC));
1097 expect(closure, contains(coreSource));
1098 }
1099 // d.dart
1100 {
1101 _computeResult(sourceD, IMPORT_SOURCE_CLOSURE);
1102 expect(task, new isInstanceOf<BuildSourceClosuresTask>());
1103 List<Source> closure = outputs[IMPORT_SOURCE_CLOSURE];
1104 expect(closure, contains(sourceD));
1105 expect(closure, contains(coreSource));
1106 }
1107 }
1108 }
1109
1110 @reflectiveTest
1064 class BuildTypeProviderTaskTest extends _AbstractDartTaskTest { 1111 class BuildTypeProviderTaskTest extends _AbstractDartTaskTest {
1065 test_perform() { 1112 test_perform() {
1066 _computeResult(AnalysisContextTarget.request, TYPE_PROVIDER); 1113 _computeResult(AnalysisContextTarget.request, TYPE_PROVIDER);
1067 expect(task, new isInstanceOf<BuildTypeProviderTask>()); 1114 expect(task, new isInstanceOf<BuildTypeProviderTask>());
1068 // validate 1115 // validate
1069 TypeProvider typeProvider = outputs[TYPE_PROVIDER]; 1116 TypeProvider typeProvider = outputs[TYPE_PROVIDER];
1070 expect(typeProvider, isNotNull); 1117 expect(typeProvider, isNotNull);
1071 expect(typeProvider.boolType, isNotNull); 1118 expect(typeProvider.boolType, isNotNull);
1072 expect(typeProvider.intType, isNotNull); 1119 expect(typeProvider.intType, isNotNull);
1073 expect(typeProvider.futureType, isNotNull); 1120 expect(typeProvider.futureType, isNotNull);
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
1567 // prepare TaskManager 1614 // prepare TaskManager
1568 taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR); 1615 taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR);
1569 taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR); 1616 taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR);
1570 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR); 1617 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR);
1571 taskManager.addTaskDescriptor(BuildClassConstructorsTask.DESCRIPTOR); 1618 taskManager.addTaskDescriptor(BuildClassConstructorsTask.DESCRIPTOR);
1572 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR); 1619 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR);
1573 taskManager.addTaskDescriptor(BuildLibraryConstructorsTask.DESCRIPTOR); 1620 taskManager.addTaskDescriptor(BuildLibraryConstructorsTask.DESCRIPTOR);
1574 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR); 1621 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR);
1575 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR); 1622 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR);
1576 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR); 1623 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR);
1577 taskManager.addTaskDescriptor(BuildExportSourceClosureTask.DESCRIPTOR); 1624 taskManager.addTaskDescriptor(BuildSourceClosuresTask.DESCRIPTOR);
1578 taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR); 1625 taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR);
1579 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR); 1626 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR);
1580 taskManager.addTaskDescriptor(BuildFunctionTypeAliasesTask.DESCRIPTOR); 1627 taskManager.addTaskDescriptor(BuildFunctionTypeAliasesTask.DESCRIPTOR);
1581 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR); 1628 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
1582 taskManager.addTaskDescriptor(GenerateHintsTask.DESCRIPTOR); 1629 taskManager.addTaskDescriptor(GenerateHintsTask.DESCRIPTOR);
1583 taskManager.addTaskDescriptor(ResolveUnitTypeNamesTask.DESCRIPTOR); 1630 taskManager.addTaskDescriptor(ResolveUnitTypeNamesTask.DESCRIPTOR);
1584 taskManager.addTaskDescriptor(ResolveLibraryTypeNamesTask.DESCRIPTOR); 1631 taskManager.addTaskDescriptor(ResolveLibraryTypeNamesTask.DESCRIPTOR);
1585 taskManager.addTaskDescriptor(ResolveReferencesTask.DESCRIPTOR); 1632 taskManager.addTaskDescriptor(ResolveReferencesTask.DESCRIPTOR);
1586 taskManager.addTaskDescriptor(ResolveVariableReferencesTask.DESCRIPTOR); 1633 taskManager.addTaskDescriptor(ResolveVariableReferencesTask.DESCRIPTOR);
1587 taskManager.addTaskDescriptor(VerifyUnitTask.DESCRIPTOR); 1634 taskManager.addTaskDescriptor(VerifyUnitTask.DESCRIPTOR);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1637 return entryMap.putIfAbsent(target, () => new CacheEntry()); 1684 return entryMap.putIfAbsent(target, () => new CacheEntry());
1638 } 1685 }
1639 1686
1640 TimestampedData<String> getContents(Source source) => source.contents; 1687 TimestampedData<String> getContents(Source source) => source.contents;
1641 1688
1642 noSuchMethod(Invocation invocation) { 1689 noSuchMethod(Invocation invocation) {
1643 print('noSuchMethod: ${invocation.memberName}'); 1690 print('noSuchMethod: ${invocation.memberName}');
1644 return super.noSuchMethod(invocation); 1691 return super.noSuchMethod(invocation);
1645 } 1692 }
1646 } 1693 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698