anchor.diff:      assertElement(invocation, importFind.class_('A').getMethod('bar'));
       assertInvokeType(invocation, 'void Function(int)');
       _assertArgumentList(invocation.argumentList, ['0']);
  +  }
  +
  +  test_targetPrefixedIdentifier_typeAlias_interfaceType_constructor() async {
  +    newFile('$testPackageLibPath/a.dart', content: r'''
  +class A<T> {
  +  A.named(T a);
  +}
  +
  +typedef X<T> = A<T>;
  +''');
  +
  +    await assertNoErrorsInCode(r'''
  +import 'a.dart' as prefix;
  +
  +void f() {
  +  prefix.X.named(0);
  +}
  +''');
  +
  +    var importFind = findElement.importFind('package:test/a.dart');
  +
  +    var creation = findNode.instanceCreation('X.named(0);');
  +    assertInstanceCreation(
  +      creation,
  +      importFind.class_('A'),
  +      'A<int>',
  +      constructorName: 'named',
  +      expectedConstructorMember: true,
  +      expectedSubstitution: {'T': 'int'},
  +      expectedPrefix: findElement.prefix('prefix'),
  +      expectedTypeNameElement: importFind.typeAlias('X'),
  +    );
  +    _assertArgumentList(creation.argumentList, ['0']);
     }
   
     test_targetSimpleIdentifier_class_constructor() async {
  
positive.code:     assertElement(invocation, importFind.topFunction('A'));
      assertInvokeType(invocation, 'void Function(int)');
      _assertArgumentList(invocation.argumentList, ['0']);
    }
  
    void _assertArgumentList(
  
negative.code: main() {
    defineReflectiveSuite(() {
      defineReflectiveTests(AstRewriteMethodInvocationTest);
    });
  }
  
  