reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2795 struct Scalar : Poly { 2816 struct Seq : Poly, std::vector<std::unique_ptr<Poly>> { 2822 struct Map : Poly, llvm::StringMap<std::unique_ptr<Poly>> {
34 using SimpleType = From; // The real type this represents... 37 static SimpleType &getSimplifiedValue(From &Val) { return Val; } 41 using NonConstSimpleType = typename simplify_type<From>::SimpleType; 47 static RetType getSimplifiedValue(const From& Val) { 57 static inline bool doit(const From &Val) { 71 return isa_impl<To, From>::doit(Val); 76 static inline bool doit(const From &Val) { 77 return isa_impl<To, From>::doit(Val); 85 return isa_impl_cl<To, From>::doit(*Val); 104 static inline bool doit(const From *Val) { 106 return isa_impl<To, From>::doit(*Val); 106 return isa_impl<To, From>::doit(*Val); 122 return isa_impl_wrap<To, SimpleFrom, 132 return isa_impl_cl<To,FromTy>::doit(Val); 141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) { 142 return isa_impl_wrap<X, const Y, 142 return isa_impl_wrap<X, const Y, 143 typename simplify_type<const Y>::SimpleType>::doit(Val); 168 using ret_type = const To &; // Normal case, return Ty& 172 using ret_type = To *; // Pointer arg case, return Ty* 186 using PointerType = typename cast_retty_impl<To, From *>::ret_type; 204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type; 210 To, From, typename simplify_type<From>::SimpleType>::ret_type; 227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) { 228 typename cast_retty<To, FromTy>::ret_type Res2 256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) { 263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) { 263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) { 265 return cast_convert_val<X, Y*, 266 typename simplify_type<Y*>::SimpleType>::doit(Val); 270 inline typename cast_retty<X, std::unique_ptr<Y>>::ret_type 273 using ret_type = typename cast_retty<X, std::unique_ptr<Y>>::ret_type; 275 cast_convert_val<X, Y *, typename simplify_type<Y *>::SimpleType>::doit( 342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) { 342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) { 378 -> decltype(cast<X>(Val)) { 379 if (!isa<X>(Val)) 381 return cast<X>(std::move(Val)); 386 -> decltype(cast<X>(Val)) {include/llvm/Support/type_traits.h
55 struct add_const_past_pointer { using type = const T; };
unittests/Support/YAMLIOTest.cpp2795 struct Scalar : Poly { 2813 static bool classof(const Poly *N) { return N->getKind() == NK_Scalar; } 2816 struct Seq : Poly, std::vector<std::unique_ptr<Poly>> { 2816 struct Seq : Poly, std::vector<std::unique_ptr<Poly>> { 2819 static bool classof(const Poly *N) { return N->getKind() == NK_Seq; } 2822 struct Map : Poly, llvm::StringMap<std::unique_ptr<Poly>> { 2822 struct Map : Poly, llvm::StringMap<std::unique_ptr<Poly>> { 2825 static bool classof(const Poly *N) { return N->getKind() == NK_Map; } 2832 static NodeKind getKind(const std::unique_ptr<Poly> &N) { 2842 static Scalar &getAsScalar(std::unique_ptr<Poly> &N) { 2848 static Seq &getAsSequence(std::unique_ptr<Poly> &N) { 2854 static Map &getAsMap(std::unique_ptr<Poly> &N) { 2923 static std::unique_ptr<Poly> &element(IO &IO, Seq &A, size_t Index) { 2935 std::unique_ptr<Poly> node = std::make_unique<Scalar>(true); 2952 auto node = llvm::unique_dyn_cast<Poly>(seq); 2960 std::unique_ptr<Poly> node; 2984 std::unique_ptr<Poly> node = llvm::unique_dyn_cast<Poly>(map); 2984 std::unique_ptr<Poly> node = llvm::unique_dyn_cast<Poly>(map); 2992 std::unique_ptr<Poly> node;usr/include/c++/7.4.0/bits/unique_ptr.h
68 default_delete(const default_delete<_Up>&) noexcept { } 72 operator()(_Tp* __ptr) const 74 static_assert(!is_void<_Tp>::value, 76 static_assert(sizeof(_Tp)>0, 122 using type = _Up*; 137 using pointer = typename _Ptr<_Tp, _Dp>::type; 161 typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type; 163 __uniq_ptr_impl<_Tp, _Dp> _M_t; 166 using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; 167 using element_type = _Tp; 252 unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept 297 __safe_conversion_up<_Up, _Ep>, 301 operator=(unique_ptr<_Up, _Ep>&& __u) noexceptusr/include/c++/7.4.0/type_traits
215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type 381 : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type 581 : public __or_<is_lvalue_reference<_Tp>, 582 is_rvalue_reference<_Tp>>::type 601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>, 601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>, 602 is_void<_Tp>>>::type 638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type 638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type 1554 { typedef _Tp type; }; 1558 { typedef _Tp type; }; 1563 { typedef _Tp type; }; 1574 remove_const<typename remove_volatile<_Tp>::type>::type type; 1645 { typedef _Tp& type; }; 1650 : public __add_lvalue_reference_helper<_Tp> 1983 { typedef _Up type; };