@@ -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 {{cannot deduce template arguments for 'Bar' from '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'}}
@@ -196,10 +196,9 @@ template <class T> struct Foo { Foo(T); };
196
196
197
197
template <class V > using AFoo = Foo<V *>;
198
198
template <typename > concept False = false ;
199
- // FIXME: emit a more descriptive diagnostic for "__is_deducible" constraint failure.
200
199
template <False W>
201
200
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 }} \
201
+ // expected-note {{cannot deduce template arguments for ' BFoo' from ' Foo<int *>' }} \
203
202
// expected-note {{candidate template ignored: could not match 'Foo<type-parameter-0-0 *>' against 'int *'}}
204
203
int i = 0 ;
205
204
AFoo a1 (&i); // OK, deduce Foo<int *>
0 commit comments