1 // RUN: %clang_cc1 -std=c++14 -fsyntax-only -verify %s
3 using nullptr_t
= decltype(nullptr);
21 // A pair of comparisons; 'inner' is a dependent name so can't be assumed
23 return this->inner
< other
> ::z
;
27 void use_x(X
<int> x
) { x
.f(0); }
34 struct Inner
: Y
{ // expected-note {{declared here}}
38 // We can determine that 'inner' does not exist at parse time, so can
39 // perform typo correction in this case.
40 return this->inner
<other
>::z
; // expected-error {{no template named 'inner' in 'Y<T>'; did you mean 'Inner'?}}
44 struct Q
{ constexpr operator int() { return 0; } };
45 void use_y(Y
<Q
> x
) { x
.f(Q()); }