anchor.diff:      PropertyAccessorElement getter =
           enginePluginClass.getGetter(resultListGetterName);
       for (ElementAnnotation annotation in getter.metadata) {
  -      // TODO(paulberry): we should be using part of the public API rather than
  -      // just casting to ElementAnnotationImpl.
  -      ElementAnnotationImpl annotationImpl = annotation;
  -      DartObjectImpl annotationValue = annotationImpl.evaluationResult.value;
  +      DartObjectImpl annotationValue = annotation.constantValue;
         if (annotationValue.type.isSubtypeOf(extensionPointIdType)) {
           String extensionPointId =
  -            annotationValue.fields['extensionPointId'].value;
  +            annotationValue.fields['extensionPointId'].toStringValue();
           for (TopLevelVariableElement variable
               in taskUnitElement.topLevelVariables) {
             if (variable.name == extensionPointId) {
  
positive.code:     for (ClassElement cls in dartDartUnitElement.types) {
        if (!cls.isAbstract && cls.type.isSubtypeOf(analysisTaskType)) {
          String task = cls.name;
          // TODO(paulberry): node is deprecated.  What am I supposed to do
          // instead?
          AstNode buildInputsAst = cls.getMethod('buildInputs').node;
          findResultDescriptors(buildInputsAst, (String input) {
            results.add(input);
            print('  $input -> $task');
  
negative.code:           resultLists.add(input);
            print('  $input -> $task');
          });
          findResultDescriptors(cls.getField('DESCRIPTOR').computeNode(), (String output) {
            results.add(output);
            print('  $task -> $output');
          });
        }
      }
      AstNode enginePluginAst = enginePluginUnitElement.computeNode();
      for (String resultList in resultLists) {
        print('  $resultList [shape=hexagon]');
        TopLevelVariableElement extensionIdVariable = _getExtensionId(resultList);
  