diff --git a/regression-tests/mixed-type-safety-1.cpp2 b/regression-tests/mixed-type-safety-1.cpp2 index 6ebe5795a..890471c2e 100644 --- a/regression-tests/mixed-type-safety-1.cpp2 +++ b/regression-tests/mixed-type-safety-1.cpp2 @@ -10,8 +10,9 @@ class Square : public Shape { }; //--- printing helpers ----------------- -print: ( msg: std::string, x: T ) - requires !std::convertible_to = +non_bool: concept = !std::convertible_to; + +print: ( msg: std::string, x: T ) = std::cout << msg << x << "\n"; print: ( msg: std::string, b: bool ) = diff --git a/regression-tests/test-results/gcc-10-c++20/mixed-type-safety-1.cpp.output b/regression-tests/test-results/gcc-10-c++20/mixed-type-safety-1.cpp.output deleted file mode 100644 index 06f8418b3..000000000 --- a/regression-tests/test-results/gcc-10-c++20/mixed-type-safety-1.cpp.output +++ /dev/null @@ -1,5 +0,0 @@ -/usr/bin/ld: /tmp/ccSlwpC6.o: in function `main': -mixed-type-safety-1.cpp:(.text+0x327): undefined reference to `void print >(std::__cxx11::basic_string, std::allocator > const&, std::integral_constant const&)' -/usr/bin/ld: mixed-type-safety-1.cpp:(.text+0x388): undefined reference to `void print >(std::__cxx11::basic_string, std::allocator > const&, std::integral_constant const&)' -/usr/bin/ld: mixed-type-safety-1.cpp:(.text+0x422): undefined reference to `void print >(std::__cxx11::basic_string, std::allocator > const&, std::integral_constant const&)' -collect2: error: ld returned 1 exit status diff --git a/regression-tests/test-results/mixed-type-safety-1.cpp b/regression-tests/test-results/mixed-type-safety-1.cpp index 203c34e9b..e9b1058dc 100644 --- a/regression-tests/test-results/mixed-type-safety-1.cpp +++ b/regression-tests/test-results/mixed-type-safety-1.cpp @@ -24,13 +24,14 @@ class Square : public Shape { }; //--- printing helpers ----------------- #line 13 "mixed-type-safety-1.cpp2" -template auto print(cpp2::impl::in msg, T const& x) -> void -CPP2_REQUIRES (!(std::convertible_to)) ; +template concept non_bool = !(std::convertible_to); -#line 17 "mixed-type-safety-1.cpp2" +template auto print(cpp2::impl::in msg, cpp2::impl::in x) -> void; + +#line 18 "mixed-type-safety-1.cpp2" auto print(cpp2::impl::in msg, cpp2::impl::in b) -> void; -#line 25 "mixed-type-safety-1.cpp2" +#line 26 "mixed-type-safety-1.cpp2" //--- examples ------------------------- [[nodiscard]] auto main() -> int; @@ -39,14 +40,11 @@ auto print(cpp2::impl::in msg, cpp2::impl::in b) -> void; #line 1 "mixed-type-safety-1.cpp2" -#line 13 "mixed-type-safety-1.cpp2" -template auto print(cpp2::impl::in msg, T const& x) -> void -requires (!(std::convertible_to)) { - #line 15 "mixed-type-safety-1.cpp2" +template auto print(cpp2::impl::in msg, cpp2::impl::in x) -> void { std::cout << msg << x << "\n"; } -#line 17 "mixed-type-safety-1.cpp2" +#line 18 "mixed-type-safety-1.cpp2" auto print(cpp2::impl::in msg, cpp2::impl::in b) -> void { cpp2::impl::deferred_init bmsg; @@ -55,7 +53,7 @@ auto print(cpp2::impl::in msg, cpp2::impl::in b) -> void std::cout << msg << cpp2::move(bmsg.value()) << "\n"; } -#line 27 "mixed-type-safety-1.cpp2" +#line 28 "mixed-type-safety-1.cpp2" [[nodiscard]] auto main() -> int { ::print("1.1 is int? ", cpp2::impl::is(1.1));