anchor.diff:        UnlinkedExecutable serializedExecutable) {
       executableElement.typeParameters =
           buildTypeParameters(serializedExecutable.typeParameters);
  -    executableElement.parameters = serializedExecutable.parameters
  -        .map((p) => buildParameter(p, executableElement))
  -        .toList();
  +    {
  +      List<UnlinkedParam> unlinkedParameters = serializedExecutable.parameters;
  +      int length = unlinkedParameters.length;
  +      if (length != 0) {
  +        List<ParameterElementImpl> parameters =
  +            new List<ParameterElementImpl>(length);
  +        for (int i = 0; i < length; i++) {
  +          parameters[i] =
  +              buildParameter(unlinkedParameters[i], executableElement);
  +        }
  +        executableElement.parameters = parameters;
  +      }
  +    }
       if (serializedExecutable.kind == UnlinkedExecutableKind.constructor) {
         // Caller handles setting the return type.
         assert(serializedExecutable.returnType == null);
  
positive.code:    */
    List<TypeParameterElement> buildTypeParameters(
        List<UnlinkedTypeParam> serializedTypeParameters) {
      List<TypeParameterElement> typeParameters =
          serializedTypeParameters.map(buildTypeParameter).toList();
      currentTypeParameters.add(typeParameters);
      for (int i = 0; i < serializedTypeParameters.length; i++) {
        finishTypeParameter(serializedTypeParameters[i], typeParameters[i]);
      }
      return typeParameters;
    }
  
    UnitExplicitTopLevelAccessors buildUnitExplicitTopLevelAccessors() {
  
negative.code:     }
      executableElement.type = new FunctionTypeImpl.elementWithNameAndArgs(
          executableElement, null, getCurrentTypeArguments(skipLevels: 1), false);
      {
        List<UnlinkedExecutable> unlinkedFunctions =
            serializedExecutable.localFunctions;
        int length = unlinkedFunctions.length;
        if (length != 0) {
          List<FunctionElementImpl> localFunctions =
              new List<FunctionElementImpl>(length);
          for (int i = 0; i < length; i++) {
            localFunctions[i] =
                buildLocalFunction(unlinkedFunctions[i], executableElement);
          }
          executableElement.functions = localFunctions;
        }
      }
      {
        List<UnlinkedLabel> unlinkedLabels = serializedExecutable.localLabels;
        int length = unlinkedLabels.length;
        if (length != 0) {
          List<LabelElementImpl> localLabels = new List<LabelElementImpl>(length);
          for (int i = 0; i < length; i++) {
            localLabels[i] = buildLocalLabel(unlinkedLabels[i]);
          }
          executableElement.labels = localLabels;
        }
      }
      {
        List<UnlinkedVariable> unlinkedVariables =
            serializedExecutable.localVariables;
        int length = unlinkedVariables.length;
        if (length != 0) {
          List<LocalVariableElementImpl> localVariables =
              new List<LocalVariableElementImpl>(length);
          for (int i = 0; i < length; i++) {
            localVariables[i] =
                buildLocalVariable(unlinkedVariables[i], executableElement);
          }
          executableElement.localVariables = localVariables;
        }
      }
      currentTypeParameters.removeLast();
    }
  
  