1f98341eaSRichard Trieu // RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s 2f98341eaSRichard Trieu 3f98341eaSRichard Trieu template <typename T> 4f98341eaSRichard Trieu struct X {}; __anonc70f135e0102() 5f98341eaSRichard Trieuauto b = []() { 6f98341eaSRichard Trieu struct S { 7*b3f6e3d6SRichard Smith static typename X<decltype(int)>::type Run(){}; // expected-error {{expected '('}} 8f98341eaSRichard Trieu }; 9f98341eaSRichard Trieu return 5; 10f98341eaSRichard Trieu }(); 11f98341eaSRichard Trieu 12f98341eaSRichard Trieu template <typename T1, typename T2> 13f98341eaSRichard Trieu class PC { 14f98341eaSRichard Trieu }; 15f98341eaSRichard Trieu 16f98341eaSRichard Trieu template <typename T> 17f98341eaSRichard Trieu class P { 18*b3f6e3d6SRichard Smith static typename PC<T, Invalid>::Type Foo(); // expected-error {{undeclared identifier 'Invalid'}} 19f98341eaSRichard Trieu }; 20