anchor.diff:      }
     }
   
  +  Future<void> test_constructorReference_named() async {
  +    addTestFile('''
  +class A<T> {
  +  /// doc aaa
  +  /// doc bbb
  +  A.named();
  +}
  +
  +void f() {
  +  A<double>.named;
  +}
  +''');
  +    var hover = await prepareHover('named;');
  +    // 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, 'A<double> A.named()');
  +    expect(hover.elementKind, 'constructor');
  +    // types
  +    expect(hover.staticType, isNull);
  +    expect(hover.propagatedType, isNull);
  +    // no parameter
  +    expect(hover.parameter, isNull);
  +  }
  +
  +  Future<void> test_constructorReference_unnamed_declared() async {
  +    addTestFile('''
  +class A<T> {
  +  /// doc aaa
  +  /// doc bbb
  +  A();
  +}
  +
  +void f() {
  +  A<double>.new;
  +}
  +''');
  +    var hover = await prepareHover('new;');
  +    // 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, 'A<double> A()');
  +    expect(hover.elementKind, 'constructor');
  +    // types
  +    expect(hover.staticType, isNull);
  +    expect(hover.propagatedType, isNull);
  +    // no parameter
  +    expect(hover.parameter, isNull);
  +  }
  +
  +  Future<void> test_constructorReference_unnamed_declared_new() async {
  +    addTestFile('''
  +class A<T> {
  +  /// doc aaa
  +  /// doc bbb
  +  A.new();
  +}
  +
  +void f() {
  +  A<double>.new;
  +}
  +''');
  +    var hover = await prepareHover('new;');
  +    // 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, 'A<double> A()');
  +    expect(hover.elementKind, 'constructor');
  +    // types
  +    expect(hover.staticType, isNull);
  +    expect(hover.propagatedType, isNull);
  +    // no parameter
  +    expect(hover.parameter, isNull);
  +  }
  +
  +  Future<void> test_constructorReference_unnamed_synthetic() async {
  +    addTestFile('''
  +class A<T> {}
  +
  +void f() {
  +  A<double>.new;
  +}
  +''');
  +    var hover = await prepareHover('new;');
  +    // element
  +    expect(hover.containingLibraryName, 'bin/test.dart');
  +    expect(hover.containingLibraryPath, testFile);
  +    expect(hover.containingClassDescription, 'A');
  +    expect(hover.dartdoc, isNull);
  +    expect(hover.elementDescription, 'A<double> A()');
  +    expect(hover.elementKind, 'constructor');
  +    // types
  +    expect(hover.staticType, isNull);
  +    expect(hover.propagatedType, isNull);
  +    // no parameter
  +    expect(hover.parameter, isNull);
  +  }
  +
     Future<void> test_dartdoc_block() async {
       addTestFile('''
   /**
  
positive.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);
  
negative.code: // 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';
  
  