chromium/tools/clang/spanify/tests/header-expected.cc

#include "base/containers/span.h"

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <vector>

#include "./third_party/do_not_rewrite/header-original.h"
#include "header-original.h"

// Declared from first party.
//
// Expected rewrite:
// void ProcessBuffer1(base::span<int> buffer, int size) {
void ProcessBuffer1(base::span<int> buffer, int size) {
  for (int i = 0; i < size; i++) {
    buffer[i] = buffer[i] + 1;
  }
}

// Declared from third party.
//
// Expected rewrite:
// void ProcessBuffer4(base::span<int> buffer, int size) {
void ProcessBuffer4(base::span<int> buffer, int size) {
  for (int i = 0; i < size; i++) {
    buffer[i] = buffer[i] * 2;
  }
}

void AllocateAndProcess() {
  std::vector<int> buffer(10);
  // Expected rewrite:
  // ProcessBuffer1(buffer, buffer.size());
  ProcessBuffer1(buffer, buffer.size());

  // Expected rewrite:
  // ProcessBuffer2(buffer.data(), buffer.size());
  ProcessBuffer2(buffer.data(), buffer.size());

  // Expected rewrite:
  // ProcessBuffer3(buffer.data(), buffer.size());
  ProcessBuffer3(buffer.data(), buffer.size());

  // Expected rewrite:
  // ProcessBuffer4(buffer, buffer.size());
  ProcessBuffer4(buffer, buffer.size());
}