anchor.diff:  
     /// List of built type aliased factory constructor invocations that require
     /// unaliasing.
  -  final List<StaticInvocation> typeAliasedFactoryInvocations =
  -      <StaticInvocation>[];
  +  final List<TypeAliasedFactoryInvocationJudgment>
  +      typeAliasedFactoryInvocations = [];
   
     /// Variables with metadata.  Their types need to be inferred late, for
     /// example, in [finishFunction].
  
positive.code:     _resolveRedirectingFactoryTargets();
    }
  
    void _resolveRedirectingFactoryTargets() {
      for (StaticInvocation invocation in redirectingFactoryInvocations) {
        // If the invocation was invalid, it or its parent has already been
  
negative.code:   }
  
    void _unaliasTypeAliasedFactoryInvocations() {
      for (TypeAliasedFactoryInvocationJudgment invocation
          in typeAliasedFactoryInvocations) {
        DartType unaliasedType = new TypedefType(
                invocation.typeAliasBuilder.typedef,
                Nullability.nonNullable,
                invocation.arguments.types)
            .unalias;
        List<DartType> invocationTypeArguments = null;
        if (unaliasedType is InterfaceType) {
          invocationTypeArguments = unaliasedType.typeArguments;
        }
        Arguments invocationArguments = forest.createArguments(
            noLocation, invocation.arguments.positional,
            types: invocationTypeArguments, named: invocation.arguments.named);
        invocation.replaceWith(_resolveRedirectingFactoryTarget(invocation.target,
            invocationArguments, invocation.fileOffset, invocation.isConst));
      }
      typeAliasedFactoryInvocations.clear();
    }
  