// RUN: %clang_cc1 -std=c++11 -verify %s // From core issue 1227. template struct A { using X = typename T::X; }; // expected-error {{no members}} template typename T::X f(typename A::X); template void f(...) {} template auto g(typename A::X) -> typename T::X; // expected-note {{here}} expected-note {{substituting}} template void g(...) {} void h() { f(0); // ok, SFINAE in return type g(0); // not ok, substitution inside A is a hard error }