anchor.diff:        Procedure initialTarget = invocation.target;
         Expression replacementNode;
   
  -      RedirectionTarget redirectionTarget = getRedirectionTarget(initialTarget,
  -          legacyMode: library.loader.target.legacyMode);
  +      RedirectionTarget redirectionTarget =
  +          getRedirectionTarget(initialTarget, legacyMode: legacyMode);
         Member resolvedTarget = redirectionTarget?.target;
   
         if (resolvedTarget == null) {
  
positive.code:           (target is Procedure && target.kind == ProcedureKind.Factory)) {
          Expression invocation;
  
          if (library.loader.target.legacyMode && isRedirectingFactory(target)) {
            // In legacy mode the checks that are done in [buildStaticInvocation]
            // on the initial target of a redirecting factory invocation should
            // be skipped. So we build the invocation nodes directly here without
  
negative.code:       int charLength: noLength}) {
      // The argument checks for the initial target of redirecting factories
      // invocations are skipped in Dart 1.
      if (!legacyMode || !isRedirectingFactory(target)) {
        List<TypeParameter> typeParameters = target.function.typeParameters;
        if (target is Constructor) {
          assert(!target.enclosingClass.isAbstract);
  