[base] Remove type-traits.h
Replace by std types defined in <type-traits> since C++17. R=mslekova@chromium.org Bug: v8:12425 Change-Id: I7ec8454634ecb63a3da4f93412d7a6c5002bb7c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3572045 Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79818}
This commit is contained in:
parent
c27b15b4f1
commit
c7d5491d64
@ -666,7 +666,6 @@ filegroup(
|
||||
"src/base/template-utils.h",
|
||||
"src/base/timezone-cache.h",
|
||||
"src/base/threaded-list.h",
|
||||
"src/base/type-traits.h",
|
||||
"src/base/utils/random-number-generator.cc",
|
||||
"src/base/utils/random-number-generator.h",
|
||||
"src/base/vector.h",
|
||||
|
1
BUILD.gn
1
BUILD.gn
@ -5193,7 +5193,6 @@ v8_component("v8_libbase") {
|
||||
"src/base/template-utils.h",
|
||||
"src/base/threaded-list.h",
|
||||
"src/base/timezone-cache.h",
|
||||
"src/base/type-traits.h",
|
||||
"src/base/utils/random-number-generator.cc",
|
||||
"src/base/utils/random-number-generator.h",
|
||||
"src/base/v8-fallthrough.h",
|
||||
|
@ -1,48 +0,0 @@
|
||||
// Copyright 2019 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef V8_BASE_TYPE_TRAITS_H_
|
||||
#define V8_BASE_TYPE_TRAITS_H_
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
// Conjunction metafunction.
|
||||
template <class... Args>
|
||||
struct conjunction;
|
||||
|
||||
template <>
|
||||
struct conjunction<> : std::true_type {};
|
||||
|
||||
template <class T>
|
||||
struct conjunction<T> : T {};
|
||||
|
||||
template <class T, class... Args>
|
||||
struct conjunction<T, Args...>
|
||||
: std::conditional<T::value, conjunction<Args...>, T>::type {};
|
||||
|
||||
// Disjunction metafunction.
|
||||
template <class... Args>
|
||||
struct disjunction;
|
||||
|
||||
template <>
|
||||
struct disjunction<> : std::true_type {};
|
||||
|
||||
template <class T>
|
||||
struct disjunction<T> : T {};
|
||||
|
||||
template <class T, class... Args>
|
||||
struct disjunction<T, Args...>
|
||||
: std::conditional<T::value, T, disjunction<Args...>>::type {};
|
||||
|
||||
// Negation metafunction.
|
||||
template <class T>
|
||||
struct negation : std::integral_constant<bool, !T::value> {};
|
||||
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
||||
#endif // V8_BASE_TYPE_TRAITS_H_
|
@ -9,13 +9,13 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <sstream>
|
||||
#include <type_traits>
|
||||
|
||||
// Clients of this interface shouldn't depend on lots of compiler internals.
|
||||
// Do not include anything from src/compiler here!
|
||||
#include "include/cppgc/source-location.h"
|
||||
#include "src/base/macros.h"
|
||||
#include "src/base/optional.h"
|
||||
#include "src/base/type-traits.h"
|
||||
#include "src/builtins/builtins.h"
|
||||
#include "src/codegen/atomic-memory-order.h"
|
||||
#include "src/codegen/code-factory.h"
|
||||
@ -1253,9 +1253,9 @@ class V8_EXPORT_PRIVATE CodeAssembler {
|
||||
template <class... CArgs>
|
||||
Node* CallCFunction(Node* function, base::Optional<MachineType> return_type,
|
||||
CArgs... cargs) {
|
||||
static_assert(v8::internal::conjunction<
|
||||
std::is_convertible<CArgs, CFunctionArg>...>::value,
|
||||
"invalid argument types");
|
||||
static_assert(
|
||||
std::conjunction_v<std::is_convertible<CArgs, CFunctionArg>...>,
|
||||
"invalid argument types");
|
||||
return CallCFunction(function, return_type, {cargs...});
|
||||
}
|
||||
|
||||
@ -1264,9 +1264,9 @@ class V8_EXPORT_PRIVATE CodeAssembler {
|
||||
Node* CallCFunctionWithoutFunctionDescriptor(Node* function,
|
||||
MachineType return_type,
|
||||
CArgs... cargs) {
|
||||
static_assert(v8::internal::conjunction<
|
||||
std::is_convertible<CArgs, CFunctionArg>...>::value,
|
||||
"invalid argument types");
|
||||
static_assert(
|
||||
std::conjunction_v<std::is_convertible<CArgs, CFunctionArg>...>,
|
||||
"invalid argument types");
|
||||
return CallCFunctionWithoutFunctionDescriptor(function, return_type,
|
||||
{cargs...});
|
||||
}
|
||||
@ -1277,9 +1277,9 @@ class V8_EXPORT_PRIVATE CodeAssembler {
|
||||
MachineType return_type,
|
||||
SaveFPRegsMode mode,
|
||||
CArgs... cargs) {
|
||||
static_assert(v8::internal::conjunction<
|
||||
std::is_convertible<CArgs, CFunctionArg>...>::value,
|
||||
"invalid argument types");
|
||||
static_assert(
|
||||
std::conjunction_v<std::is_convertible<CArgs, CFunctionArg>...>,
|
||||
"invalid argument types");
|
||||
return CallCFunctionWithCallerSavedRegisters(function, return_type, mode,
|
||||
{cargs...});
|
||||
}
|
||||
|
@ -6,8 +6,8 @@
|
||||
#define V8_COMPILER_RAW_MACHINE_ASSEMBLER_H_
|
||||
|
||||
#include <initializer_list>
|
||||
#include <type_traits>
|
||||
|
||||
#include "src/base/type-traits.h"
|
||||
#include "src/codegen/assembler.h"
|
||||
#include "src/common/globals.h"
|
||||
#include "src/compiler/access-builder.h"
|
||||
@ -969,9 +969,9 @@ class V8_EXPORT_PRIVATE RawMachineAssembler {
|
||||
template <class... CArgs>
|
||||
Node* CallCFunction(Node* function, base::Optional<MachineType> return_type,
|
||||
CArgs... cargs) {
|
||||
static_assert(v8::internal::conjunction<
|
||||
std::is_convertible<CArgs, CFunctionArg>...>::value,
|
||||
"invalid argument types");
|
||||
static_assert(
|
||||
std::conjunction_v<std::is_convertible<CArgs, CFunctionArg>...>,
|
||||
"invalid argument types");
|
||||
return CallCFunction(function, return_type, {cargs...});
|
||||
}
|
||||
|
||||
@ -983,9 +983,9 @@ class V8_EXPORT_PRIVATE RawMachineAssembler {
|
||||
Node* CallCFunctionWithoutFunctionDescriptor(Node* function,
|
||||
MachineType return_type,
|
||||
CArgs... cargs) {
|
||||
static_assert(v8::internal::conjunction<
|
||||
std::is_convertible<CArgs, CFunctionArg>...>::value,
|
||||
"invalid argument types");
|
||||
static_assert(
|
||||
std::conjunction_v<std::is_convertible<CArgs, CFunctionArg>...>,
|
||||
"invalid argument types");
|
||||
return CallCFunctionWithoutFunctionDescriptor(function, return_type,
|
||||
{cargs...});
|
||||
}
|
||||
@ -1000,9 +1000,9 @@ class V8_EXPORT_PRIVATE RawMachineAssembler {
|
||||
MachineType return_type,
|
||||
SaveFPRegsMode mode,
|
||||
CArgs... cargs) {
|
||||
static_assert(v8::internal::conjunction<
|
||||
std::is_convertible<CArgs, CFunctionArg>...>::value,
|
||||
"invalid argument types");
|
||||
static_assert(
|
||||
std::conjunction_v<std::is_convertible<CArgs, CFunctionArg>...>,
|
||||
"invalid argument types");
|
||||
return CallCFunctionWithCallerSavedRegisters(function, return_type, mode,
|
||||
{cargs...});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user