[llvm] [ADT] Allow member pointers in map_range and map_to_vector (PR #181154)

via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 12 07:33:05 PST 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 98540 tests passed
* 1930 tests skipped

All executed tests passed, but another part of the build **failed**. Click on a failure below to see the details.

<details>
<summary>unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorExtrasTest.cpp.o</summary>

```
FAILED: unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorExtrasTest.cpp.o
sccache /opt/llvm/bin/clang++ -DLLVM_BUILD_STATIC -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/unittests/ADT -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -UNDEBUG -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -Wno-suggest-override -MD -MT unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorExtrasTest.cpp.o -MF unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorExtrasTest.cpp.o.d -o unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorExtrasTest.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/SmallVectorExtrasTest.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/SmallVectorExtrasTest.cpp:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:228:12: error: called object type 'int MapToVectorStruct::*' is not a function or function pointer
228 |     return (*Obj)(std::forward<Pn>(Params)...);
|            ^~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2558:7: note: in instantiation of function template specialization 'llvm::callable_detail::Callable<int MapToVectorStruct::*>::operator()<MapToVectorStruct &, 0>' requested here
2558 |       std::declval<_Fn>()(std::declval<_Args>()...)
|       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2569:24: note: while substituting deduced template arguments into function template '_S_test' [with _Fn = const llvm::callable_detail::Callable<int MapToVectorStruct::*> &, _Args = (no value)]
2569 |       typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
|                        ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2575:14: note: in instantiation of template class 'std::__result_of_impl<false, false, const llvm::callable_detail::Callable<int MapToVectorStruct::*> &, MapToVectorStruct &>' requested here
2575 |     : public __result_of_impl<
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3062:14: note: in instantiation of template class 'std::__invoke_result<const llvm::callable_detail::Callable<int MapToVectorStruct::*> &, MapToVectorStruct &>' requested here
3062 |     : public __invoke_result<_Functor, _ArgTypes...>
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3073:5: note: in instantiation of template class 'std::invoke_result<const llvm::callable_detail::Callable<int MapToVectorStruct::*> &, MapToVectorStruct &>' requested here
3073 |     using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
|     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:109:33: note: (skipping 9 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
109 |     inline _GLIBCXX20_CONSTEXPR invoke_result_t<_Callable, _Args...>
|                                 ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:522:12: note: in instantiation of function template specialization 'std::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
522 |       std::uninitialized_copy(I, E, Dest);
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:690:11: note: in instantiation of function template specialization 'llvm::SmallVectorTemplateBase<int>::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
690 |     this->uninitialized_copy(in_start, in_end, this->end());
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1226:11: note: in instantiation of function template specialization 'llvm::SmallVectorImpl<int>::append<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, void>' requested here
1226 |     this->append(S, E);
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1312:10: note: in instantiation of function template specialization 'llvm::SmallVector<int>::SmallVector<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, void>' requested here
1312 |   return {adl_begin(Range), adl_end(Range)};
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:48:10: note: in instantiation of function template specialization 'llvm::to_vector<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>>>' requested here
48 |   return to_vector(
|          ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/SmallVectorExtrasTest.cpp:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:350:42: error: no matching function for call to 'invoke'
350 |   ReferenceTy operator*() const { return std::invoke(F, *this->I); }
|                                          ^~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:388:20: note: in instantiation of member function 'llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>::operator*' requested here
388 |               *__result = *__first;
|                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:506:22: note: in instantiation of function template specialization 'std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
506 |                               _Category>::__copy_m(__first, __last, __result);
|                                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:533:19: note: in instantiation of function template specialization 'std::__copy_move_a2<false, llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
533 |     { return std::__copy_move_a2<_IsMove>(__first, __last, __result); }
|                   ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:541:8: note: in instantiation of function template specialization 'std::__copy_move_a1<false, llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
541 |                 std::__copy_move_a1<_IsMove>(std::__niter_base(__first),
|                      ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:632:19: note: in instantiation of function template specialization 'std::__copy_move_a<false, llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
632 |       return std::__copy_move_a<__is_move_iterator<_II>::__value>
|                   ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_uninitialized.h:147:23: note: (skipping 2 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
147 |         { return std::copy(__first, __last, __result); }
|                       ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:522:12: note: in instantiation of function template specialization 'std::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
522 |       std::uninitialized_copy(I, E, Dest);
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:690:11: note: in instantiation of function template specialization 'llvm::SmallVectorTemplateBase<int>::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, int *>' requested here
690 |     this->uninitialized_copy(in_start, in_end, this->end());
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1226:11: note: in instantiation of function template specialization 'llvm::SmallVectorImpl<int>::append<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, void>' requested here
1226 |     this->append(S, E);
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1312:10: note: in instantiation of function template specialization 'llvm::SmallVector<int>::SmallVector<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>, void>' requested here
1312 |   return {adl_begin(Range), adl_end(Range)};
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:48:10: note: in instantiation of function template specialization 'llvm::to_vector<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int MapToVectorStruct::*>>>' requested here
48 |   return to_vector(
|          ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:110:5: note: candidate template ignored: substitution failure [with _Callable = const callable_detail::Callable<int MapToVectorStruct::*> &, _Args = <MapToVectorStruct &>]: no type named 'type' in 'std::invoke_result<const llvm::callable_detail::Callable<int MapToVectorStruct::*> &, MapToVectorStruct &>'
110 |     invoke(_Callable&& __fn, _Args&&... __args)
|     ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/SmallVectorExtrasTest.cpp:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:228:12: error: called object type 'int (MapToVectorStruct::*)() const' is not a function or function pointer
228 |     return (*Obj)(std::forward<Pn>(Params)...);
|            ^~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2558:7: note: in instantiation of function template specialization 'llvm::callable_detail::Callable<int (MapToVectorStruct::*)() const>::operator()<MapToVectorStruct &, 0>' requested here
2558 |       std::declval<_Fn>()(std::declval<_Args>()...)
|       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2569:24: note: while substituting deduced template arguments into function template '_S_test' [with _Fn = const llvm::callable_detail::Callable<int (MapToVectorStruct::*)() const> &, _Args = (no value)]
2569 |       typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
|                        ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2575:14: note: in instantiation of template class 'std::__result_of_impl<false, false, const llvm::callable_detail::Callable<int (MapToVectorStruct::*)() const> &, MapToVectorStruct &>' requested here
2575 |     : public __result_of_impl<
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3062:14: note: in instantiation of template class 'std::__invoke_result<const llvm::callable_detail::Callable<int (MapToVectorStruct::*)() const> &, MapToVectorStruct &>' requested here
3062 |     : public __invoke_result<_Functor, _ArgTypes...>
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3073:5: note: in instantiation of template class 'std::invoke_result<const llvm::callable_detail::Callable<int (MapToVectorStruct::*)() const> &, MapToVectorStruct &>' requested here
3073 |     using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
|     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:109:33: note: (skipping 9 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
109 |     inline _GLIBCXX20_CONSTEXPR invoke_result_t<_Callable, _Args...>
|                                 ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:522:12: note: in instantiation of function template specialization 'std::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
522 |       std::uninitialized_copy(I, E, Dest);
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:690:11: note: in instantiation of function template specialization 'llvm::SmallVectorTemplateBase<int>::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
690 |     this->uninitialized_copy(in_start, in_end, this->end());
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1226:11: note: in instantiation of function template specialization 'llvm::SmallVectorImpl<int>::append<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, void>' requested here
1226 |     this->append(S, E);
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1312:10: note: in instantiation of function template specialization 'llvm::SmallVector<int>::SmallVector<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, void>' requested here
1312 |   return {adl_begin(Range), adl_end(Range)};
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:48:10: note: in instantiation of function template specialization 'llvm::to_vector<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>>>' requested here
48 |   return to_vector(
|          ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/SmallVectorExtrasTest.cpp:13:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:17:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:350:42: error: no matching function for call to 'invoke'
350 |   ReferenceTy operator*() const { return std::invoke(F, *this->I); }
|                                          ^~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:388:20: note: in instantiation of member function 'llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>::operator*' requested here
388 |               *__result = *__first;
|                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:506:22: note: in instantiation of function template specialization 'std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
506 |                               _Category>::__copy_m(__first, __last, __result);
|                                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:533:19: note: in instantiation of function template specialization 'std::__copy_move_a2<false, llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
533 |     { return std::__copy_move_a2<_IsMove>(__first, __last, __result); }
|                   ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:541:8: note: in instantiation of function template specialization 'std::__copy_move_a1<false, llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
541 |                 std::__copy_move_a1<_IsMove>(std::__niter_base(__first),
|                      ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_algobase.h:632:19: note: in instantiation of function template specialization 'std::__copy_move_a<false, llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
632 |       return std::__copy_move_a<__is_move_iterator<_II>::__value>
|                   ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_uninitialized.h:147:23: note: (skipping 2 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
147 |         { return std::copy(__first, __last, __result); }
|                       ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:522:12: note: in instantiation of function template specialization 'std::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
522 |       std::uninitialized_copy(I, E, Dest);
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:690:11: note: in instantiation of function template specialization 'llvm::SmallVectorTemplateBase<int>::uninitialized_copy<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, int *>' requested here
690 |     this->uninitialized_copy(in_start, in_end, this->end());
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1226:11: note: in instantiation of function template specialization 'llvm::SmallVectorImpl<int>::append<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, void>' requested here
1226 |     this->append(S, E);
|           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1312:10: note: in instantiation of function template specialization 'llvm::SmallVector<int>::SmallVector<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>, void>' requested here
1312 |   return {adl_begin(Range), adl_end(Range)};
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVectorExtras.h:48:10: note: in instantiation of function template specialization 'llvm::to_vector<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapToVectorStruct *, std::vector<MapToVectorStruct>>, int (MapToVectorStruct::*)() const>>>' requested here
48 |   return to_vector(
|          ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:110:5: note: candidate template ignored: substitution failure [with _Callable = const callable_detail::Callable<int (MapToVectorStruct::*)() const> &, _Args = <MapToVectorStruct &>]: no type named 'type' in 'std::invoke_result<const llvm::callable_detail::Callable<int (MapToVectorStruct::*)() const> &, MapToVectorStruct &>'
110 |     invoke(_Callable&& __fn, _Args&&... __args)
|     ^
4 errors generated.
```
</details>
<details>
<summary>unittests/ADT/CMakeFiles/ADTTests.dir/STLExtrasTest.cpp.o</summary>

```
FAILED: unittests/ADT/CMakeFiles/ADTTests.dir/STLExtrasTest.cpp.o
sccache /opt/llvm/bin/clang++ -DLLVM_BUILD_STATIC -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/unittests/ADT -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -UNDEBUG -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -Wno-suggest-override -MD -MT unittests/ADT/CMakeFiles/ADTTests.dir/STLExtrasTest.cpp.o -MF unittests/ADT/CMakeFiles/ADTTests.dir/STLExtrasTest.cpp.o.d -o unittests/ADT/CMakeFiles/ADTTests.dir/STLExtrasTest.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:9:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:228:12: error: called object type 'int MapRangeStruct::*' is not a function or function pointer
228 |     return (*Obj)(std::forward<Pn>(Params)...);
|            ^~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2558:7: note: in instantiation of function template specialization 'llvm::callable_detail::Callable<int MapRangeStruct::*>::operator()<MapRangeStruct &, 0>' requested here
2558 |       std::declval<_Fn>()(std::declval<_Args>()...)
|       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2569:24: note: while substituting deduced template arguments into function template '_S_test' [with _Fn = const llvm::callable_detail::Callable<int MapRangeStruct::*> &, _Args = (no value)]
2569 |       typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
|                        ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2575:14: note: in instantiation of template class 'std::__result_of_impl<false, false, const llvm::callable_detail::Callable<int MapRangeStruct::*> &, MapRangeStruct &>' requested here
2575 |     : public __result_of_impl<
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3062:14: note: in instantiation of template class 'std::__invoke_result<const llvm::callable_detail::Callable<int MapRangeStruct::*> &, MapRangeStruct &>' requested here
3062 |     : public __invoke_result<_Functor, _ArgTypes...>
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3073:5: note: in instantiation of template class 'std::invoke_result<const llvm::callable_detail::Callable<int MapRangeStruct::*> &, MapRangeStruct &>' requested here
3073 |     using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
|     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:109:33: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
109 |     inline _GLIBCXX20_CONSTEXPR invoke_result_t<_Callable, _Args...>
|                                 ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:355:12: note: in instantiation of function template specialization 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::CastImpl<false>' requested here
355 |     return CastImpl(polymorphic_matcher_or_value,
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:515:43: note: in instantiation of member function 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::Cast' requested here
515 |   return internal::MatcherCastImpl<T, M>::Cast(matcher);
|                                           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:522:10: note: in instantiation of function template specialization 'testing::MatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
522 |   return MatcherCast<T>(polymorphic_matcher_or_value);
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:1591:39: note: in instantiation of function template specialization 'testing::SafeMatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
1591 |     const Matcher<const T&> matcher = SafeMatcherCast<const T&>(matcher_);
|                                       ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:855:3: note: in instantiation of function template specialization 'testing::internal::PredicateFormatterFromMatcher<testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::operator()<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>>>' requested here
855 |   EXPECT_THAT(map_range(Structs, &MapRangeStruct::X), ElementsAre(1, 2, 3));
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:5495:3: note: expanded from macro 'EXPECT_THAT'
5495 |   EXPECT_PRED_FORMAT1(              \
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:109:3: note: expanded from macro 'EXPECT_PRED_FORMAT1'
109 |   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:100:28: note: expanded from macro 'GTEST_PRED_FORMAT1_'
100 |   GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
|                            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:79:52: note: expanded from macro 'GTEST_ASSERT_'
79 |   if (const ::testing::AssertionResult gtest_ar = (expression)) \
|                                                    ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:9:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:350:42: error: no matching function for call to 'invoke'
350 |   ReferenceTy operator*() const { return std::invoke(F, *this->I); }
|                                          ^~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:3467:53: note: in instantiation of member function 'llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>::operator*' requested here
3467 |         match = matchers_[exam_pos].MatchAndExplain(*it, &s);
|                                                     ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:3399:3: note: in instantiation of member function 'testing::internal::ElementsAreMatcherImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &>::MatchAndExplain' requested here
3399 |   ElementsAreMatcherImpl(InputIter first, InputIter last) {
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:3797:35: note: in instantiation of function template specialization 'testing::internal::ElementsAreMatcherImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &>::ElementsAreMatcherImpl<__gnu_cxx::__normal_iterator<testing::Matcher<const int &> *, std::vector<testing::Matcher<const int &>>>>' requested here
3797 |     return Matcher<Container>(new ElementsAreMatcherImpl<const Container&>(
|                                   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:373:12: note: in instantiation of function template specialization 'testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>::operator Matcher<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &>' requested here
373 |     return polymorphic_matcher_or_value;
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:355:12: note: in instantiation of function template specialization 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::CastImpl<false>' requested here
355 |     return CastImpl(polymorphic_matcher_or_value,
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:515:43: note: in instantiation of member function 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::Cast' requested here
515 |   return internal::MatcherCastImpl<T, M>::Cast(matcher);
|                                           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:522:10: note: in instantiation of function template specialization 'testing::MatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
522 |   return MatcherCast<T>(polymorphic_matcher_or_value);
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:1591:39: note: in instantiation of function template specialization 'testing::SafeMatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
1591 |     const Matcher<const T&> matcher = SafeMatcherCast<const T&>(matcher_);
|                                       ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:855:3: note: in instantiation of function template specialization 'testing::internal::PredicateFormatterFromMatcher<testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::operator()<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int MapRangeStruct::*>>>' requested here
855 |   EXPECT_THAT(map_range(Structs, &MapRangeStruct::X), ElementsAre(1, 2, 3));
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:5495:3: note: expanded from macro 'EXPECT_THAT'
5495 |   EXPECT_PRED_FORMAT1(              \
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:109:3: note: expanded from macro 'EXPECT_PRED_FORMAT1'
109 |   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:100:28: note: expanded from macro 'GTEST_PRED_FORMAT1_'
100 |   GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
|                            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:79:52: note: expanded from macro 'GTEST_ASSERT_'
79 |   if (const ::testing::AssertionResult gtest_ar = (expression)) \
|                                                    ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:110:5: note: candidate template ignored: substitution failure [with _Callable = const callable_detail::Callable<int MapRangeStruct::*> &, _Args = <MapRangeStruct &>]: no type named 'type' in 'std::invoke_result<const llvm::callable_detail::Callable<int MapRangeStruct::*> &, MapRangeStruct &>'
110 |     invoke(_Callable&& __fn, _Args&&... __args)
|     ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:9:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:228:12: error: called object type 'int (MapRangeStruct::*)() const' is not a function or function pointer
228 |     return (*Obj)(std::forward<Pn>(Params)...);
|            ^~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2558:7: note: in instantiation of function template specialization 'llvm::callable_detail::Callable<int (MapRangeStruct::*)() const>::operator()<MapRangeStruct &, 0>' requested here
2558 |       std::declval<_Fn>()(std::declval<_Args>()...)
|       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2569:24: note: while substituting deduced template arguments into function template '_S_test' [with _Fn = const llvm::callable_detail::Callable<int (MapRangeStruct::*)() const> &, _Args = (no value)]
2569 |       typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
|                        ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:2575:14: note: in instantiation of template class 'std::__result_of_impl<false, false, const llvm::callable_detail::Callable<int (MapRangeStruct::*)() const> &, MapRangeStruct &>' requested here
2575 |     : public __result_of_impl<
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3062:14: note: in instantiation of template class 'std::__invoke_result<const llvm::callable_detail::Callable<int (MapRangeStruct::*)() const> &, MapRangeStruct &>' requested here
3062 |     : public __invoke_result<_Functor, _ArgTypes...>
|              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:3073:5: note: in instantiation of template class 'std::invoke_result<const llvm::callable_detail::Callable<int (MapRangeStruct::*)() const> &, MapRangeStruct &>' requested here
3073 |     using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
|     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:109:33: note: (skipping 6 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
109 |     inline _GLIBCXX20_CONSTEXPR invoke_result_t<_Callable, _Args...>
|                                 ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:355:12: note: in instantiation of function template specialization 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::CastImpl<false>' requested here
355 |     return CastImpl(polymorphic_matcher_or_value,
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:515:43: note: in instantiation of member function 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::Cast' requested here
515 |   return internal::MatcherCastImpl<T, M>::Cast(matcher);
|                                           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:522:10: note: in instantiation of function template specialization 'testing::MatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
522 |   return MatcherCast<T>(polymorphic_matcher_or_value);
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:1591:39: note: in instantiation of function template specialization 'testing::SafeMatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
1591 |     const Matcher<const T&> matcher = SafeMatcherCast<const T&>(matcher_);
|                                       ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:858:3: note: in instantiation of function template specialization 'testing::internal::PredicateFormatterFromMatcher<testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::operator()<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>>>' requested here
858 |   EXPECT_THAT(map_range(Structs, &MapRangeStruct::getX), ElementsAre(1, 2, 3));
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:5495:3: note: expanded from macro 'EXPECT_THAT'
5495 |   EXPECT_PRED_FORMAT1(              \
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:109:3: note: expanded from macro 'EXPECT_PRED_FORMAT1'
109 |   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:100:28: note: expanded from macro 'GTEST_PRED_FORMAT1_'
100 |   GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
|                            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:79:52: note: expanded from macro 'GTEST_ASSERT_'
79 |   if (const ::testing::AssertionResult gtest_ar = (expression)) \
|                                                    ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:9:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/STLExtras.h:350:42: error: no matching function for call to 'invoke'
350 |   ReferenceTy operator*() const { return std::invoke(F, *this->I); }
|                                          ^~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:3467:53: note: in instantiation of member function 'llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>::operator*' requested here
3467 |         match = matchers_[exam_pos].MatchAndExplain(*it, &s);
|                                                     ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:3399:3: note: in instantiation of member function 'testing::internal::ElementsAreMatcherImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &>::MatchAndExplain' requested here
3399 |   ElementsAreMatcherImpl(InputIter first, InputIter last) {
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:3797:35: note: in instantiation of function template specialization 'testing::internal::ElementsAreMatcherImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &>::ElementsAreMatcherImpl<__gnu_cxx::__normal_iterator<testing::Matcher<const int &> *, std::vector<testing::Matcher<const int &>>>>' requested here
3797 |     return Matcher<Container>(new ElementsAreMatcherImpl<const Container&>(
|                                   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:373:12: note: in instantiation of function template specialization 'testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>::operator Matcher<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &>' requested here
373 |     return polymorphic_matcher_or_value;
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:355:12: note: in instantiation of function template specialization 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::CastImpl<false>' requested here
355 |     return CastImpl(polymorphic_matcher_or_value,
|            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:515:43: note: in instantiation of member function 'testing::internal::MatcherCastImpl<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::Cast' requested here
515 |   return internal::MatcherCastImpl<T, M>::Cast(matcher);
|                                           ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:522:10: note: in instantiation of function template specialization 'testing::MatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
522 |   return MatcherCast<T>(polymorphic_matcher_or_value);
|          ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:1591:39: note: in instantiation of function template specialization 'testing::SafeMatcherCast<const llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>> &, testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>' requested here
1591 |     const Matcher<const T&> matcher = SafeMatcherCast<const T&>(matcher_);
|                                       ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/unittests/ADT/STLExtrasTest.cpp:858:3: note: in instantiation of function template specialization 'testing::internal::PredicateFormatterFromMatcher<testing::internal::ElementsAreMatcher<std::tuple<int, int, int>>>::operator()<llvm::iterator_range<llvm::mapped_iterator<__gnu_cxx::__normal_iterator<MapRangeStruct *, std::vector<MapRangeStruct>>, int (MapRangeStruct::*)() const>>>' requested here
858 |   EXPECT_THAT(map_range(Structs, &MapRangeStruct::getX), ElementsAre(1, 2, 3));
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googlemock/include/gmock/gmock-matchers.h:5495:3: note: expanded from macro 'EXPECT_THAT'
5495 |   EXPECT_PRED_FORMAT1(              \
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:109:3: note: expanded from macro 'EXPECT_PRED_FORMAT1'
109 |   GTEST_PRED_FORMAT1_(pred_format, v1, GTEST_NONFATAL_FAILURE_)
|   ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:100:28: note: expanded from macro 'GTEST_PRED_FORMAT1_'
100 |   GTEST_ASSERT_(pred_format(#v1, v1), on_failure)
|                            ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/third-party/unittest/googletest/include/gtest/gtest_pred_impl.h:79:52: note: expanded from macro 'GTEST_ASSERT_'
79 |   if (const ::testing::AssertionResult gtest_ar = (expression)) \
|                                                    ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/functional:110:5: note: candidate template ignored: substitution failure [with _Callable = const callable_detail::Callable<int (MapRangeStruct::*)() const> &, _Args = <MapRangeStruct &>]: no type named 'type' in 'std::invoke_result<const llvm::callable_detail::Callable<int (MapRangeStruct::*)() const> &, MapRangeStruct &>'
110 |     invoke(_Callable&& __fn, _Args&&... __args)
|     ^
4 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/181154


More information about the llvm-commits mailing list