anchor.diff:      }
       executableElement.type = new FunctionTypeImpl.elementWithNameAndArgs(
           executableElement, null, getCurrentTypeArguments(skipLevels: 1), false);
  -    executableElement.functions = serializedExecutable.localFunctions
  -        .map((f) => buildLocalFunction(f, executableElement))
  -        .toList();
  -    executableElement.labels =
  -        serializedExecutable.localLabels.map(buildLocalLabel).toList();
  -    executableElement.localVariables = serializedExecutable.localVariables
  -        .map((v) => buildLocalVariable(v, executableElement))
  -        .toList();
  +    {
  +      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();
     }
   
  
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:       UnlinkedExecutable serializedExecutable) {
      executableElement.typeParameters =
          buildTypeParameters(serializedExecutable.typeParameters);
      {
        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);
  