#include <gtest/gtest.h>

#include <torch/torch.h>

struct Node {};

// If `torch::autograd::Note` is leaked into the root namespace, the following compile error would throw:
// ```
// void NotLeakingSymbolsFromTorchAutogradNamespace_test_func(Node *node) {}
//                                                            ^
// error: reference to `Node` is ambiguous
// ```
void NotLeakingSymbolsFromTorchAutogradNamespace_test_func(Node *node) {}

TEST(NamespaceTests, NotLeakingSymbolsFromTorchAutogradNamespace) {
  // Checks that we are not leaking symbols from the
  // `torch::autograd` namespace to the root namespace
  NotLeakingSymbolsFromTorchAutogradNamespace_test_func(nullptr);
}
