rapidcheck icon indicating copy to clipboard operation
rapidcheck copied to clipboard

warning `declared with greater visibility than the type of its field ‘rc::shrinkable::shrinkRecur`

Open esromneb opened this issue 7 years ago • 2 comments

The reason I'm reporting this is because I get different behavior when using RapidCheck and -Werror with g++-5 and g++-7 . With g++-5 this Warning doesn't exist. However under g++-7 this is a Warning.

src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp: In instantiation of ‘struct rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<wchar_t>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = wchar_t; Args = {std::char_traits<wchar_t>, std::allocator<wchar_t>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<wchar_t>]::<lambda(rc::Decay<std::__cxx11::basic_string<wchar_t> >&&)>’:
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:89:46:   required from ‘rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<wchar_t>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = wchar_t; Args = {std::char_traits<wchar_t>, std::allocator<wchar_t>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<wchar_t>]’
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:89:47:   required from ‘struct rc::shrinkable::shrinkRecur(T&&, const Shrink&) [with T = std::__cxx11::basic_string<wchar_t>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = wchar_t; Args = {std::char_traits<wchar_t>, std::allocator<wchar_t>}]::<lambda(const String&)>; typename std::decay<_Tp>::type = std::__cxx11::basic_string<wchar_t>]::<lambda(rc::Decay<std::__cxx11::basic_string<wchar_t> >&&)>’
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:87:28:   required from ‘rc::Shrinkable<typename std::decay<_Tp>::type> rc::shrinkable::shrinkRecur(T&&, const Shrink&) [with T = std::__cxx11::basic_string<wchar_t>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = wchar_t; Args = {std::char_traits<wchar_t>, std::allocator<wchar_t>}]::<lambda(const String&)>; typename std::decay<_Tp>::type = std::__cxx11::basic_string<wchar_t>]’
src/3rd/rapidcheck/include/rapidcheck/gen/Text.hpp:35:35:   required from ‘rc::Shrinkable<std::__cxx11::basic_string<T, Args ...> > rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = wchar_t; Args = {std::char_traits<wchar_t>, std::allocator<wchar_t>}]’
src/3rd/rapidcheck/include/rapidcheck/Gen.hpp:39:31:   required from ‘rc::Shrinkable<T> rc::Gen<T>::GenImpl<Impl>::generate(const rc::Random&, int) const [with Impl = rc::gen::detail::StringGen<std::__cxx11::basic_string<wchar_t> >; T = std::__cxx11::basic_string<wchar_t>]’
src/3rd/rapidcheck/src/gen/Text.cpp:6:44:   required from here
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:90:49: error: ‘rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<wchar_t>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = wchar_t; Args = {std::char_traits<wchar_t>, std::allocator<wchar_t>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<wchar_t>]::<lambda(rc::Decay<std::__cxx11::basic_string<wchar_t> >&&)>’ declared with greater visibility than the type of its field ‘rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<wchar_t>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = wchar_t; Args = {std::char_traits<wchar_t>, std::allocator<wchar_t>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<wchar_t>]::<lambda(rc::Decay<std::__cxx11::basic_string<wchar_t> >&&)>::<shrinkf capture>’ [-Werror=attributes]
                                               [=](Decay<T> &&xshrink) {
                                                 ^
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp: In instantiation of ‘struct rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<char>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = char; Args = {std::char_traits<char>, std::allocator<char>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<char>]::<lambda(rc::Decay<std::__cxx11::basic_string<char> >&&)>’:
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:89:46:   required from ‘rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<char>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = char; Args = {std::char_traits<char>, std::allocator<char>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<char>]’
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:89:47:   required from ‘struct rc::shrinkable::shrinkRecur(T&&, const Shrink&) [with T = std::__cxx11::basic_string<char>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = char; Args = {std::char_traits<char>, std::allocator<char>}]::<lambda(const String&)>; typename std::decay<_Tp>::type = std::__cxx11::basic_string<char>]::<lambda(rc::Decay<std::__cxx11::basic_string<char> >&&)>’
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:87:28:   required from ‘rc::Shrinkable<typename std::decay<_Tp>::type> rc::shrinkable::shrinkRecur(T&&, const Shrink&) [with T = std::__cxx11::basic_string<char>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = char; Args = {std::char_traits<char>, std::allocator<char>}]::<lambda(const String&)>; typename std::decay<_Tp>::type = std::__cxx11::basic_string<char>]’
src/3rd/rapidcheck/include/rapidcheck/gen/Text.hpp:35:35:   required from ‘rc::Shrinkable<std::__cxx11::basic_string<T, Args ...> > rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = char; Args = {std::char_traits<char>, std::allocator<char>}]’
src/3rd/rapidcheck/include/rapidcheck/Gen.hpp:39:31:   required from ‘rc::Shrinkable<T> rc::Gen<T>::GenImpl<Impl>::generate(const rc::Random&, int) const [with Impl = rc::gen::detail::StringGen<std::__cxx11::basic_string<char> >; T = std::__cxx11::basic_string<char>]’
src/3rd/rapidcheck/src/gen/Text.cpp:6:44:   required from here
src/3rd/rapidcheck/include/rapidcheck/shrinkable/Create.hpp:90:49: error: ‘rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<char>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = char; Args = {std::char_traits<char>, std::allocator<char>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<char>]::<lambda(rc::Decay<std::__cxx11::basic_string<char> >&&)>’ declared with greater visibility than the type of its field ‘rc::shrinkable::shrinkRecur(T&&, const Shrink&)::<lambda(rc::Decay<T>&&)> [with T = std::__cxx11::basic_string<char>; Shrink = rc::gen::detail::StringGen<std::__cxx11::basic_string<T, Args ...> >::operator()(const rc::Random&, int) const [with T = char; Args = {std::char_traits<char>, std::allocator<char>}]::<lambda(const String&)>; rc::Decay<T> = std::__cxx11::basic_string<char>]::<lambda(rc::Decay<std::__cxx11::basic_string<char> >&&)>::<shrinkf capture>’ [-Werror=attributes]
cc1plus: all warnings being treated as errors

esromneb avatar Sep 23 '18 04:09 esromneb

I don't have g++ installed on my system so I cannot test it right now. A PR would be greatly appreciated.

emil-e avatar Sep 23 '18 18:09 emil-e

I would love to submit a PR, but I'm not sure how to remove the warning. I will take a look

esromneb avatar Sep 24 '18 03:09 esromneb