anchor.diff:        if (serializedExecutable.isFactory) {
           EntityRef redirectedConstructor =
               serializedExecutable.redirectedConstructor;
  -        _ReferenceInfo info = referenceInfos[redirectedConstructor.reference];
  +        _ReferenceInfo info = getReferenceInfo(redirectedConstructor.reference);
           List<EntityRef> typeArguments = redirectedConstructor.typeArguments;
           currentConstructor.redirectedConstructor = _createConstructorElement(
               _createConstructorDefiningType(info, typeArguments), info);
  
positive.code:             break;
          }
        }
        referenceInfos[i] = new _ReferenceInfo(libraryResynthesizer,
            enclosingInfo, name, element, type, numTypeParameters);
      }
    }
  
    /**
  
negative.code:   }
  
    /**
     * Return [_ReferenceInfo] with the given [index], lazily resolving it.
     */
    _ReferenceInfo getReferenceInfo(int index) {
      _ReferenceInfo result = referenceInfos[index];
      if (result == null) {
        LinkedReference linkedReference = linkedUnit.references[index];
        String name;
        int containingReference;
        if (index < numUnlinkedReferences) {
          name = unlinkedUnit.references[index].name;
          containingReference = unlinkedUnit.references[index].prefixReference;
        } else {
          name = linkedUnit.references[index].name;
          containingReference = linkedUnit.references[index].containingReference;
        }
        _ReferenceInfo enclosingInfo = containingReference != 0
            ? getReferenceInfo(containingReference)
            : null;
        Element element;
        DartType type;
        int numTypeParameters = linkedReference.numTypeParameters;
  