diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-03-31 23:17:41 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-03-31 23:17:41 +0000 |
commit | 1eabb7d0c30f6a876b0fd03ad4656c096c26b8d0 (patch) | |
tree | b89dacc3db3a5d7c640924e06fa14339aaf2a7b9 /lib/Sema/SemaTemplateInstantiateDecl.cpp | |
parent | 4033642464e8ba0982f88f34cffad808d247b393 (diff) |
Improve diagnostics when an elaborated-type-specifer containing a
nested-name-specifier (e.g., "class T::foo") fails to find a tag
member in the scope nominated by the
nested-name-specifier. Previously, we gave a bland
error: 'Nested' does not name a tag member in the specified scope
which didn't actually say where we were looking, which was rather
horrible when the nested-name-specifier was instantiated. Now, we give
something a bit better:
error: no class named 'Nested' in 'NoDepBase<T>'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100060 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaTemplateInstantiateDecl.cpp')
-rw-r--r-- | lib/Sema/SemaTemplateInstantiateDecl.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Sema/SemaTemplateInstantiateDecl.cpp b/lib/Sema/SemaTemplateInstantiateDecl.cpp index 9777569b31..3375ccc0eb 100644 --- a/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -693,7 +693,8 @@ Decl *TemplateDeclInstantiator::VisitClassTemplateDecl(ClassTemplateDecl *D) { if (!PrevClassTemplate && Qualifier) { SemaRef.Diag(Pattern->getLocation(), diag::err_not_tag_in_scope) - << Pattern->getDeclName() << Pattern->getQualifierRange(); + << D->getTemplatedDecl()->getTagKind() << Pattern->getDeclName() << DC + << Pattern->getQualifierRange(); return 0; } |