[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