1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 
3 template <typename A, typedef B> struct Foo {
4   // expected-error@-1 {{expected template parameter}} expected-note@-1 {{did you mean to use 'typename'?}}
5 
6   // Check that we are speculatively (with fixit applied) trying to parse the rest.
7 
8   // Should not produce error about type since parsing speculatively with fixit applied.
9   B member;
10 
11   a // expected-error {{unknown type name 'a'}} // expected-error@+1 {{expected member name or ';' after declaration specifiers}}
12 };
13 
14 
15 // RUN: not %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s
16 // CHECK: fix-it:{{.*}}:{3:23-3:30}:"typename"
17