| Index: pkg/analyzer/lib/src/generated/engine.dart | 
| diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart | 
| index a7559a68b5bbe1a06a9bb81d675db479b2bae297..fdd53e37bcff07115c29161c3f9522d33994f3ab 100644 | 
| --- a/pkg/analyzer/lib/src/generated/engine.dart | 
| +++ b/pkg/analyzer/lib/src/generated/engine.dart | 
| @@ -26,12 +26,7 @@ import 'package:analyzer/src/generated/source.dart'; | 
| import 'package:analyzer/src/generated/utilities_general.dart'; | 
| import 'package:analyzer/src/plugin/engine_plugin.dart'; | 
| import 'package:analyzer/src/services/lint.dart'; | 
| -import 'package:analyzer/src/task/dart.dart'; | 
| -import 'package:analyzer/src/task/general.dart'; | 
| -import 'package:analyzer/src/task/html.dart'; | 
| import 'package:analyzer/src/task/manager.dart'; | 
| -import 'package:analyzer/src/task/options.dart'; | 
| -import 'package:analyzer/src/task/yaml.dart'; | 
| import 'package:analyzer/task/dart.dart'; | 
| import 'package:analyzer/task/model.dart'; | 
| import 'package:front_end/src/base/timestamped_data.dart'; | 
| @@ -827,9 +822,14 @@ class AnalysisEngine { | 
| */ | 
| TaskManager get taskManager { | 
| if (_taskManager == null) { | 
| +      if (enginePlugin.taskExtensionPoint == null) { | 
| +        processRequiredPlugins(); | 
| +      } | 
| _taskManager = new TaskManager(); | 
| -      _initializeTaskMap(); | 
| -      _initializeResults(); | 
| +      _taskManager.addTaskDescriptors(enginePlugin.taskDescriptors); | 
| +      // TODO(brianwilkerson) Create a way to associate different results with | 
| +      // different file suffixes, then make this pluggable. | 
| +      _taskManager.addGeneralResult(DART_ERRORS); | 
| } | 
| return _taskManager; | 
| } | 
| @@ -859,87 +859,6 @@ class AnalysisEngine { | 
| manager.processPlugins(requiredPlugins); | 
| } | 
|  | 
| -  void _initializeResults() { | 
| -    _taskManager.addGeneralResult(DART_ERRORS); | 
| -  } | 
| - | 
| -  void _initializeTaskMap() { | 
| -    // | 
| -    // Register general tasks. | 
| -    // | 
| -    _taskManager.addTaskDescriptor(GetContentTask.DESCRIPTOR); | 
| -    // | 
| -    // Register Dart tasks. | 
| -    // | 
| -    _taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(BuildExportNamespaceTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(BuildSourceExportClosureTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ComputeConstantDependenciesTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ComputeConstantValueTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor( | 
| -        ComputeInferableStaticVariableDependenciesTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ComputeLibraryCycleTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ComputeRequiredConstantsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ContainingLibrariesTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(DartErrorsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(EvaluateUnitConstantsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(GatherUsedImportedElementsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(GatherUsedLocalElementsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(GenerateHintsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(GenerateLintsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(InferInstanceMembersInUnitTask.DESCRIPTOR); | 
| -    _taskManager | 
| -        .addTaskDescriptor(InferStaticVariableTypesInUnitTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(InferStaticVariableTypeTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(LibraryErrorsReadyTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(LibraryUnitErrorsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ParseDartTask.DESCRIPTOR); | 
| -    _taskManager | 
| -        .addTaskDescriptor(PartiallyResolveUnitReferencesTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ReadyLibraryElement2Task.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ReadyLibraryElement5Task.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ReadyLibraryElement7Task.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ReadyResolvedUnitTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveConstantExpressionTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveDirectiveElementsTask.DESCRIPTOR); | 
| -    _taskManager | 
| -        .addTaskDescriptor(ResolvedUnit7InLibraryClosureTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolvedUnit7InLibraryTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveInstanceFieldsInUnitTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveLibraryReferencesTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveLibraryTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveLibraryTypeNamesTask.DESCRIPTOR); | 
| -    _taskManager | 
| -        .addTaskDescriptor(ResolveTopLevelLibraryTypeBoundsTask.DESCRIPTOR); | 
| -    _taskManager | 
| -        .addTaskDescriptor(ResolveTopLevelUnitTypeBoundsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveUnitTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveUnitTypeNamesTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ResolveVariableReferencesTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ScanDartTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(StrongModeVerifyUnitTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(VerifyUnitTask.DESCRIPTOR); | 
| -    // | 
| -    // Register HTML tasks. | 
| -    // | 
| -    _taskManager.addTaskDescriptor(DartScriptsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(HtmlErrorsTask.DESCRIPTOR); | 
| -    _taskManager.addTaskDescriptor(ParseHtmlTask.DESCRIPTOR); | 
| -    // | 
| -    // Register YAML tasks. | 
| -    // | 
| -    _taskManager.addTaskDescriptor(ParseYamlTask.DESCRIPTOR); | 
| -    // | 
| -    // Register analysis option file tasks. | 
| -    // | 
| -    _taskManager.addTaskDescriptor(GenerateOptionsErrorsTask.DESCRIPTOR); | 
| -  } | 
| - | 
| /** | 
| * Return `true` if the given [fileName] is an analysis options file. | 
| */ | 
|  |