anchor.diff:    }
   
     Future<void> test_enum_constant() async {
  -    addTestFile('''
  +    var testCode = TestCode.parse(r'''
   enum MyEnum {AAA, BBB}
   
   void f() {
  
positive.code:   }
  
    Future<void> test_class_constructor_fieldFormalParameter() async {
      addTestFile('''
  class A {
    final int foo;
    A(this.foo);
  }
  ''');
      await prepareHighlights();
      assertHasRegion(HighlightRegionType.KEYWORD, 'this.');
      assertHasRegion(HighlightRegionType.INSTANCE_FIELD_REFERENCE, 'foo);');
    }
  
    Future<void> test_CLASS_notDynamic() async {
  
negative.code:     assertHasRegion(type, 'unresolved(2)');
      assertHasRegion(type, 'unresolved(3)');
    }
  
    /// Returns the textual dump of the highlight regions that intersect with
    /// the [index]th range in [testCode] (or all code if `-1`).
    String _getHighlightText(TestCode testCode, int index) {
      var window = index == -1
          ? SourceRange(0, testCode.code.length)
          : testCode.ranges[index].sourceRange;
  
      // TODO(scheglov) Apparently, we don't sort in the server.
      var sortedRegions = regions.sortedBy<num>((e) => e.offset);
  
      var buffer = StringBuffer();
      for (var region in sortedRegions) {
        var offset = region.offset;
        var end = offset + region.length;
        if (window.contains(offset) || window.contains(end)) {
          var regionDesc = '$offset + ${region.length}';
          var regionCode = testCode.code.substring(offset, end);
          buffer.writeln('$regionDesc |$regionCode| ${region.type.name}');
        }
      }
      return buffer.toString();
    }
  }
  
  class HighlightsTestSupport extends PubPackageAnalysisServerTest {
  