diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-06-29 18:55:19 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-06-29 18:55:19 +0000 | 
| commit | 9629e9ac3e91fe1939f43ab430a257458828e143 (patch) | |
| tree | bf290f69ab825f6773462ff52192633507ed1a99 /clang/lib/Sema/SemaDeclCXX.cpp | |
| parent | d91d5bfc95b488509fe376c08d9fcdbe705a75f7 (diff) | |
| download | bcm5719-llvm-9629e9ac3e91fe1939f43ab430a257458828e143.tar.gz bcm5719-llvm-9629e9ac3e91fe1939f43ab430a257458828e143.zip | |
Typo correction for namespace alias definitions
llvm-svn: 107191
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 26 | 
1 files changed, 24 insertions, 2 deletions
| diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 66d0bf5bd41..bf75773f6d0 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -4223,8 +4223,30 @@ Sema::DeclPtrTy Sema::ActOnNamespaceAliasDef(Scope *S,      return DeclPtrTy();    if (R.empty()) { -    Diag(NamespaceLoc, diag::err_expected_namespace_name) << SS.getRange(); -    return DeclPtrTy(); +    if (DeclarationName Corrected = CorrectTypo(R, S, &SS, 0, false,  +                                                CTC_NoKeywords, 0)) { +      if (R.getAsSingle<NamespaceDecl>() ||  +          R.getAsSingle<NamespaceAliasDecl>()) { +        if (DeclContext *DC = computeDeclContext(SS, false)) +          Diag(IdentLoc, diag::err_using_directive_member_suggest) +            << Ident << DC << Corrected << SS.getRange() +            << FixItHint::CreateReplacement(IdentLoc, Corrected.getAsString());         +        else +          Diag(IdentLoc, diag::err_using_directive_suggest) +            << Ident << Corrected +            << FixItHint::CreateReplacement(IdentLoc, Corrected.getAsString()); +         +        Diag(R.getFoundDecl()->getLocation(), diag::note_namespace_defined_here) +          << Corrected; +         +        Ident = Corrected.getAsIdentifierInfo(); +      } +    } +     +    if (R.empty()) { +      Diag(NamespaceLoc, diag::err_expected_namespace_name) << SS.getRange(); +      return DeclPtrTy(); +    }    }    NamespaceAliasDecl *AliasDecl = | 

