| Index: pkg/analyzer/test/src/task/dart_test.dart
|
| diff --git a/pkg/analyzer/test/src/task/dart_test.dart b/pkg/analyzer/test/src/task/dart_test.dart
|
| index 3f4e33b6e505060d5b258cf9982d820638903535..7c51a7fe71ef97ddca951d183b5ec5a02a9274b2 100644
|
| --- a/pkg/analyzer/test/src/task/dart_test.dart
|
| +++ b/pkg/analyzer/test/src/task/dart_test.dart
|
| @@ -38,6 +38,7 @@ main() {
|
| runReflectiveTests(BuildEnumMemberElementsTaskTest);
|
| runReflectiveTests(BuildExportSourceClosureTaskTest);
|
| runReflectiveTests(BuildExportNamespaceTaskTest);
|
| + runReflectiveTests(BuildFunctionTypeAliasesTaskTest);
|
| runReflectiveTests(BuildLibraryElementTaskTest);
|
| runReflectiveTests(BuildPublicNamespaceTaskTest);
|
| runReflectiveTests(BuildTypeProviderTaskTest);
|
| @@ -579,6 +580,49 @@ library lib_d;
|
| }
|
|
|
| @reflectiveTest
|
| +class BuildFunctionTypeAliasesTaskTest extends _AbstractDartTaskTest {
|
| + test_perform() {
|
| + Source source = _newSource('/test.dart', '''
|
| +typedef int F(G g);
|
| +typedef String G(int p);
|
| +''');
|
| + LibraryUnitTarget target = new LibraryUnitTarget(source, source);
|
| + _computeResult(target, RESOLVED_UNIT5);
|
| + expect(task, new isInstanceOf<BuildFunctionTypeAliasesTask>());
|
| + // validate
|
| + CompilationUnit unit = outputs[RESOLVED_UNIT5];
|
| + FunctionTypeAlias nodeF = unit.declarations[0];
|
| + FunctionTypeAlias nodeG = unit.declarations[1];
|
| + {
|
| + FormalParameter parameter = nodeF.parameters.parameters[0];
|
| + DartType parameterType = parameter.element.type;
|
| + Element returnTypeElement = nodeF.returnType.type.element;
|
| + expect(returnTypeElement.displayName, 'int');
|
| + expect(parameterType.element, nodeG.element);
|
| + }
|
| + {
|
| + FormalParameter parameter = nodeG.parameters.parameters[0];
|
| + DartType parameterType = parameter.element.type;
|
| + expect(nodeG.returnType.type.element.displayName, 'String');
|
| + expect(parameterType.element.displayName, 'int');
|
| + }
|
| + }
|
| +
|
| + test_perform_errors() {
|
| + Source source = _newSource('/test.dart', '''
|
| +typedef int F(NoSuchType p);
|
| +''');
|
| + LibraryUnitTarget target = new LibraryUnitTarget(source, source);
|
| + _computeResult(target, BUILD_FUNCTION_TYPE_ALIASES_ERRORS);
|
| + expect(task, new isInstanceOf<BuildFunctionTypeAliasesTask>());
|
| + // validate
|
| + _fillErrorListener(BUILD_FUNCTION_TYPE_ALIASES_ERRORS);
|
| + errorListener
|
| + .assertErrorsWithCodes(<ErrorCode>[StaticWarningCode.UNDEFINED_CLASS]);
|
| + }
|
| +}
|
| +
|
| +@reflectiveTest
|
| class BuildLibraryElementTaskTest extends _AbstractDartTaskTest {
|
| Source librarySource;
|
| CompilationUnit libraryUnit;
|
| @@ -1080,6 +1124,7 @@ class _AbstractDartTaskTest extends EngineTestCase {
|
| taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR);
|
| taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
|
| taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR);
|
| + taskManager.addTaskDescriptor(BuildFunctionTypeAliasesTask.DESCRIPTOR);
|
| // prepare AnalysisDriver
|
| analysisDriver = new AnalysisDriver(taskManager, context);
|
| }
|
|
|