88
99#line 1 "pure2-bugfix-for-dependent-types.cpp2"
1010
11- #line 47 "pure2-bugfix-for-dependent-types.cpp2"
11+ #line 49 "pure2-bugfix-for-dependent-types.cpp2"
1212template <typename T> class t ;
1313
1414
@@ -18,16 +18,18 @@ template<typename T> class t;
1818template <typename T> using identity = T;
1919#line 2 "pure2-bugfix-for-dependent-types.cpp2"
2020
21+ template <typename T> auto f ([[maybe_unused]] typename T::value_type& unnamed_param_1) -> void;
22+ template <typename T> auto f ([[maybe_unused]] typename T::value_type&& unnamed_param_1) -> void;
2123template <typename T, T::value_type V> [[nodiscard]] auto f (cpp2::impl::in<typename T::value_type> x) -> T::value_type;
2224
23- #line 47 "pure2-bugfix-for-dependent-types.cpp2"
25+ #line 49 "pure2-bugfix-for-dependent-types.cpp2"
2426template <typename T> class t {
2527struct u_x_as_base { typename T::value_type x; };
2628
27- #line 48 "pure2-bugfix-for-dependent-types.cpp2"
29+ #line 50 "pure2-bugfix-for-dependent-types.cpp2"
2830 public: class u : public u_x_as_base , public T ::type {
2931
30- #line 51 "pure2-bugfix-for-dependent-types.cpp2"
32+ #line 53 "pure2-bugfix-for-dependent-types.cpp2"
3133 // Test that there's no `typename` in the member initializer list.
3234 public: u(u const & that);
3335 };
@@ -41,6 +43,10 @@ auto main() -> int;
4143#line 1 "pure2-bugfix-for-dependent-types.cpp2"
4244
4345#line 3 "pure2-bugfix-for-dependent-types.cpp2"
46+ template <typename T> auto f ([[maybe_unused]] typename T::value_type& unnamed_param_1) -> void{}
47+ #line 4 "pure2-bugfix-for-dependent-types.cpp2"
48+ template <typename T> auto f ([[maybe_unused]] typename T::value_type&& unnamed_param_1) -> void{}
49+ #line 5 "pure2-bugfix-for-dependent-types.cpp2"
4450template <typename T, T::value_type V> [[nodiscard]] auto f (cpp2::impl::in<typename T::value_type> x) -> T::value_type{
4551 if (cpp2::cpp2_default.is_active () && !(cpp2::impl::is<typename T::value_type>(x)) ) { cpp2::cpp2_default.report_violation (" " ); }
4652 cpp2::impl::deferred_init<typename T::value_type> y;
@@ -85,12 +91,12 @@ template<typename T, T::value_type V> [[nodiscard]] auto f(cpp2::impl::in<typena
8591 }
8692}
8793
88- #line 52 "pure2-bugfix-for-dependent-types.cpp2"
94+ #line 54 "pure2-bugfix-for-dependent-types.cpp2"
8995 template <typename T> t<T>::u::u(u const & that)
9096 : u_x_as_base{ that.x }
9197 , T::type{ static_cast <typename T::type const &>(that) }{}
9298
93- #line 57 "pure2-bugfix-for-dependent-types.cpp2"
99+ #line 59 "pure2-bugfix-for-dependent-types.cpp2"
94100auto main () -> int{
95101 using zero = std::integral_constant<cpp2::i32 ,0 >;
96102 static_cast <void >(f<zero,0 >(0 ));
0 commit comments