// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "gn/test_with_scope.h"
#include "util/test/test.h"

// Checks that variables used inside template definitions aren't reported
// unused if they were declared above the template.
TEST(FunctionTemplate, MarkUsed) {
  TestWithScope setup;
  TestParseInput input(
      "a = 1\n"  // Unused outside of template.
      "template(\"templ\") {\n"
      "  print(a)\n"
      "}\n");
  ASSERT_FALSE(input.has_error()) << input.parse_err().message();

  Err err;
  input.parsed()->Execute(setup.scope(), &err);
  ASSERT_FALSE(err.has_error()) << err.message();

  // Normally the loader calls CheckForUnusedVars() when it loads a file
  // since normal blocks don't do this check. To avoid having to make this
  // test much more complicated, just explicitly do the check to make sure
  // things are marked properly.
  setup.scope()->CheckForUnusedVars(&err);
  EXPECT_FALSE(err.has_error());
}
