anchor.diff:  // BSD-style license that can be found in the LICENSE file.
   
   import 'package:analysis_server/protocol/protocol_generated.dart';
  +import 'package:analysis_server/src/protocol_server.dart';
   import 'package:test/test.dart';
   import 'package:test_reflective_loader/test_reflective_loader.dart';
   
  
positive.code:     }
    }
  
    Future<void> test_dartdoc_block() async {
      addTestFile('''
  /**
  
negative.code:     expect(hover.dartdoc, '''doc aaa\ndoc bbb''');
      expect(
          hover.elementDescription, "List<String> fff(int a, [String b = 'b'])");
      expect(hover.elementKind, 'function');
      // types
      expect(hover.staticType, isNull);
      expect(hover.propagatedType, isNull);
      // no parameter
      expect(hover.parameter, isNull);
    }
  
    Future<void> test_functionReference_classMethod_instance() async {
      addTestFile('''
  class A<T> {
    /// doc aaa
    /// doc bbb
    int foo<U>(T t, U u) => 0;
  }
  
  void f(A<int> a) {
    a.foo<double>;
  }
  ''');
      var hover = await prepareHover('foo<double>');
      // element
      expect(hover.containingLibraryName, 'bin/test.dart');
      expect(hover.containingLibraryPath, testFile);
      expect(hover.containingClassDescription, 'A');
      expect(hover.dartdoc, '''doc aaa\ndoc bbb''');
      expect(hover.elementDescription, 'int foo<U>(int t, U u)');
      expect(hover.elementKind, 'method');
      // types
      expect(hover.staticType, isNull);
      expect(hover.propagatedType, isNull);
      // no parameter
      expect(hover.parameter, isNull);
    }
  
    Future<void> test_functionReference_classMethod_static() async {
      addTestFile('''
  class A<T> {
    /// doc aaa
    /// doc bbb
    static int foo<U>(U u) => 0;
  }
  
  void f() {
    A.foo<double>;
  }
  ''');
      var hover = await prepareHover('foo<double>');
      // element
      expect(hover.containingLibraryName, 'bin/test.dart');
      expect(hover.containingLibraryPath, testFile);
      expect(hover.containingClassDescription, 'A');
      expect(hover.dartdoc, '''doc aaa\ndoc bbb''');
      expect(hover.elementDescription, 'int foo<U>(U u)');
      expect(hover.elementKind, 'method');
      // types
      expect(hover.staticType, isNull);
      expect(hover.propagatedType, isNull);
      // no parameter
      expect(hover.parameter, isNull);
    }
  
    Future<void> test_functionReference_topLevelFunction() async {
      addTestFile('''
  /// doc aaa
  /// doc bbb
  int foo<T>(T a) => 0;
  
  void f() {
    foo<double>;
  }
  ''');
      var hover = await prepareHover('foo<double>');
      // element
      expect(hover.containingLibraryName, 'bin/test.dart');
      expect(hover.containingLibraryPath, testFile);
      expect(hover.containingClassDescription, isNull);
      expect(hover.dartdoc, '''doc aaa\ndoc bbb''');
      expect(hover.elementDescription, 'int foo<T>(T a)');
      expect(hover.elementKind, 'function');
      // types
      expect(hover.staticType, isNull);
  