//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef LIBCXX_TEST_CONCEPTS_LANG_CONCEPTS_ARITHMETIC_H_
#define LIBCXX_TEST_CONCEPTS_LANG_CONCEPTS_ARITHMETIC_H_

#include <concepts>

// This overload should never be called. It exists solely to force subsumption.
template <std::integral I>
constexpr bool CheckSubsumption(I) {
  return false;
}

// clang-format off
template <std::integral I>
requires std::signed_integral<I> && (!std::unsigned_integral<I>)
constexpr bool CheckSubsumption(I) {
  return std::is_signed_v<I>;
}

template <std::integral I>
requires std::unsigned_integral<I> && (!std::signed_integral<I>)
constexpr bool CheckSubsumption(I) {
  return std::is_unsigned_v<I>;
}
// clang-format on

enum ClassicEnum { a, b, c };
enum class ScopedEnum { x, y, z };
struct EmptyStruct {};

#endif // LIBCXX_TEST_CONCEPTS_LANG_CONCEPTS_ARITHMETIC_H_
