@@ -111,7 +111,7 @@ struct Foo {
111
111
template <typename X, int Y>
112
112
using Bar = Foo<X, sizeof (X)>; // expected-note {{candidate template ignored: couldn't infer template argument 'X'}} \
113
113
// expected-note {{candidate template ignored: constraints not satisfied [with X = int]}} \
114
- // expected-note {{because '__is_deducible }}
114
+ // expected-note {{can not deduce template arguments for 'Bar' from the type 'Foo<int, 4UL>' }}
115
115
116
116
117
117
Bar s = {{1 }}; // expected-error {{no viable constructor or deduction guide }}
@@ -138,7 +138,7 @@ template<class T> struct Foo { T c; };
138
138
template <class X , class Y =A>
139
139
using AFoo = Foo<Y>; // expected-note {{candidate template ignored: could not match 'Foo<type-parameter-0-0>' against 'int'}} \
140
140
// expected-note {{candidate template ignored: constraints not satisfied [with Y = int]}} \
141
- // expected-note {{because '__is_deducible( AFoo, Foo<int>)' evaluated to false }} \
141
+ // expected-note {{cannot deduce template arguments for ' AFoo' from ' Foo<int>' }} \
142
142
// expected-note {{candidate function template not viable: requires 0 arguments, but 1 was provided}}
143
143
144
144
AFoo s = {1 }; // expected-error {{no viable constructor or deduction guide for deduction of template arguments of 'AFoo'}}
@@ -199,7 +199,7 @@ template<typename> concept False = false;
199
199
// FIXME: emit a more descriptive diagnostic for "__is_deducible" constraint failure.
200
200
template <False W>
201
201
using BFoo = AFoo<W>; // expected-note {{candidate template ignored: constraints not satisfied [with V = int]}} \
202
- // expected-note {{because '__is_deducible( BFoo, Foo<int *>)' evaluated to false }} \
202
+ // expected-note {{cannot deduce template arguments for ' BFoo' from ' Foo<int *>' }} \
203
203
// expected-note {{candidate template ignored: could not match 'Foo<type-parameter-0-0 *>' against 'int *'}}
204
204
int i = 0 ;
205
205
AFoo a1 (&i); // OK, deduce Foo<int *>
0 commit comments