| 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 | |