xref: /llvm-project/clang-tools-extra/docs/clang-tidy/checks/abseil/no-internal-dependencies.rst (revision 6c7b049f6eb78edf83506a858c7b211a7c70afd8)
1.. title:: clang-tidy - abseil-no-internal-dependencies
2
3abseil-no-internal-dependencies
4===============================
5
6Warns if code using Abseil depends on internal details. If something is in a
7namespace that includes the word "internal", code is not allowed to depend upon
8it because it's an implementation detail. They cannot friend it, include it,
9you mention it or refer to it in any way. Doing so violates Abseil's
10compatibility guidelines and may result in breakage. See
11https://abseil.io/about/compatibility for more information.
12
13The following cases will result in warnings:
14
15.. code-block:: c++
16
17  absl::strings_internal::foo();
18  // warning triggered on this line
19  class foo {
20    friend struct absl::container_internal::faa;
21    // warning triggered on this line
22  };
23  absl::memory_internal::MakeUniqueResult();
24  // warning triggered on this line
25