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

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

Issue 1023503002: Task: Resolve Type Names. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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 25 matching lines...) Expand all
36 runReflectiveTests(BuildCompilationUnitElementTaskTest); 36 runReflectiveTests(BuildCompilationUnitElementTaskTest);
37 runReflectiveTests(BuildDirectiveElementsTaskTest); 37 runReflectiveTests(BuildDirectiveElementsTaskTest);
38 runReflectiveTests(BuildEnumMemberElementsTaskTest); 38 runReflectiveTests(BuildEnumMemberElementsTaskTest);
39 runReflectiveTests(BuildExportSourceClosureTaskTest); 39 runReflectiveTests(BuildExportSourceClosureTaskTest);
40 runReflectiveTests(BuildExportNamespaceTaskTest); 40 runReflectiveTests(BuildExportNamespaceTaskTest);
41 runReflectiveTests(BuildFunctionTypeAliasesTaskTest); 41 runReflectiveTests(BuildFunctionTypeAliasesTaskTest);
42 runReflectiveTests(BuildLibraryElementTaskTest); 42 runReflectiveTests(BuildLibraryElementTaskTest);
43 runReflectiveTests(BuildPublicNamespaceTaskTest); 43 runReflectiveTests(BuildPublicNamespaceTaskTest);
44 runReflectiveTests(BuildTypeProviderTaskTest); 44 runReflectiveTests(BuildTypeProviderTaskTest);
45 runReflectiveTests(ParseDartTaskTest); 45 runReflectiveTests(ParseDartTaskTest);
46 runReflectiveTests(ResolveTypeNamesTaskTest);
46 runReflectiveTests(ScanDartTaskTest); 47 runReflectiveTests(ScanDartTaskTest);
47 } 48 }
48 49
49 @reflectiveTest 50 @reflectiveTest
50 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest { 51 class BuildCompilationUnitElementTaskTest extends _AbstractDartTaskTest {
51 test_buildInputs() { 52 test_buildInputs() {
52 LibraryUnitTarget target = new LibraryUnitTarget(emptySource, emptySource); 53 LibraryUnitTarget target = new LibraryUnitTarget(emptySource, emptySource);
53 Map<String, TaskInput> inputs = 54 Map<String, TaskInput> inputs =
54 BuildCompilationUnitElementTask.buildInputs(target); 55 BuildCompilationUnitElementTask.buildInputs(target);
55 expect(inputs, isNotNull); 56 expect(inputs, isNotNull);
(...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after
1029 1030
1030 static void _assertHasCore(List<Source> sources, int lenght) { 1031 static void _assertHasCore(List<Source> sources, int lenght) {
1031 expect(sources, hasLength(lenght)); 1032 expect(sources, hasLength(lenght));
1032 expect(sources, contains(predicate((Source s) { 1033 expect(sources, contains(predicate((Source s) {
1033 return s.fullName.endsWith('core.dart'); 1034 return s.fullName.endsWith('core.dart');
1034 }))); 1035 })));
1035 } 1036 }
1036 } 1037 }
1037 1038
1038 @reflectiveTest 1039 @reflectiveTest
1040 class ResolveTypeNamesTaskTest extends _AbstractDartTaskTest {
1041 test_perform() {
1042 Source source = _newSource('/test.dart', '''
1043 class A {}
1044 class B extends A {}
1045 int f(String p) => p.length;
1046 ''');
1047 LibraryUnitTarget target = new LibraryUnitTarget(source, source);
1048 _computeResult(target, RESOLVED_UNIT6);
1049 expect(task, new isInstanceOf<ResolveTypeNamesTask>());
1050 // validate
1051 CompilationUnit unit = outputs[RESOLVED_UNIT6];
1052 {
1053 ClassDeclaration nodeA = unit.declarations[0];
1054 ClassDeclaration nodeB = unit.declarations[1];
1055 DartType extendsType = nodeB.extendsClause.superclass.type;
1056 expect(extendsType, nodeA.element.type);
1057 }
1058 {
1059 FunctionDeclaration functionNode = unit.declarations[2];
1060 DartType returnType = functionNode.returnType.type;
1061 List<FormalParameter> parameters =
1062 functionNode.functionExpression.parameters.parameters;
1063 expect(returnType.displayName, 'int');
1064 expect(parameters[0].element.type.displayName, 'String');
1065 }
1066 }
1067
1068 test_perform_errors() {
1069 Source source = _newSource('/test.dart', '''
1070 NoSuchClass f() => null;
1071 ''');
1072 LibraryUnitTarget target = new LibraryUnitTarget(source, source);
1073 _computeResult(target, RESOLVE_TYPE_NAMES_ERRORS);
1074 expect(task, new isInstanceOf<ResolveTypeNamesTask>());
1075 // validate
1076 _fillErrorListener(RESOLVE_TYPE_NAMES_ERRORS);
1077 errorListener
1078 .assertErrorsWithCodes(<ErrorCode>[StaticWarningCode.UNDEFINED_CLASS]);
1079 }
1080 }
1081
1082 @reflectiveTest
1039 class ScanDartTaskTest extends _AbstractDartTaskTest { 1083 class ScanDartTaskTest extends _AbstractDartTaskTest {
1040 test_buildInputs() { 1084 test_buildInputs() {
1041 Map<String, TaskInput> inputs = ScanDartTask.buildInputs(emptySource); 1085 Map<String, TaskInput> inputs = ScanDartTask.buildInputs(emptySource);
1042 expect(inputs, isNotNull); 1086 expect(inputs, isNotNull);
1043 expect(inputs.keys, unorderedEquals([ScanDartTask.CONTENT_INPUT_NAME])); 1087 expect(inputs.keys, unorderedEquals([ScanDartTask.CONTENT_INPUT_NAME]));
1044 } 1088 }
1045 1089
1046 test_constructor() { 1090 test_constructor() {
1047 ScanDartTask task = new ScanDartTask(context, emptySource); 1091 ScanDartTask task = new ScanDartTask(context, emptySource);
1048 expect(task, isNotNull); 1092 expect(task, isNotNull);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR); 1166 taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR);
1123 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR); 1167 taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR);
1124 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR); 1168 taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR);
1125 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR); 1169 taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR);
1126 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR); 1170 taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR);
1127 taskManager.addTaskDescriptor(BuildExportSourceClosureTask.DESCRIPTOR); 1171 taskManager.addTaskDescriptor(BuildExportSourceClosureTask.DESCRIPTOR);
1128 taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR); 1172 taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR);
1129 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR); 1173 taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
1130 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR); 1174 taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR);
1131 taskManager.addTaskDescriptor(BuildFunctionTypeAliasesTask.DESCRIPTOR); 1175 taskManager.addTaskDescriptor(BuildFunctionTypeAliasesTask.DESCRIPTOR);
1176 taskManager.addTaskDescriptor(ResolveTypeNamesTask.DESCRIPTOR);
1132 // prepare AnalysisDriver 1177 // prepare AnalysisDriver
1133 analysisDriver = new AnalysisDriver(taskManager, context); 1178 analysisDriver = new AnalysisDriver(taskManager, context);
1134 } 1179 }
1135 1180
1136 void _computeResult(AnalysisTarget target, ResultDescriptor result) { 1181 void _computeResult(AnalysisTarget target, ResultDescriptor result) {
1137 task = analysisDriver.computeResult(target, result); 1182 task = analysisDriver.computeResult(target, result);
1138 expect(task.caughtException, isNull); 1183 expect(task.caughtException, isNull);
1139 outputs = task.outputs; 1184 outputs = task.outputs;
1140 } 1185 }
1141 1186
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 return entryMap.putIfAbsent(target, () => new CacheEntry()); 1226 return entryMap.putIfAbsent(target, () => new CacheEntry());
1182 } 1227 }
1183 1228
1184 TimestampedData<String> getContents(Source source) => source.contents; 1229 TimestampedData<String> getContents(Source source) => source.contents;
1185 1230
1186 noSuchMethod(Invocation invocation) { 1231 noSuchMethod(Invocation invocation) {
1187 print('noSuchMethod: ${invocation.memberName}'); 1232 print('noSuchMethod: ${invocation.memberName}');
1188 return super.noSuchMethod(invocation); 1233 return super.noSuchMethod(invocation);
1189 } 1234 }
1190 } 1235 }
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