aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaTemplateVariadic.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-06-28 16:20:02 +0000
committerDouglas Gregor <dgregor@apple.com>2011-06-28 16:20:02 +0000
commitc2fa169d6c8f7975ea9e50c2c1e9dfdbcc071216 (patch)
tree2290758805540d9136ed9d06794152a42e077d8a /clang/lib/Sema/SemaTemplateVariadic.cpp
parentd79f9666c8a01c59579aa334229f129e7c5cac29 (diff)
downloadllvm-c2fa169d6c8f7975ea9e50c2c1e9dfdbcc071216.zip
llvm-c2fa169d6c8f7975ea9e50c2c1e9dfdbcc071216.tar.gz
llvm-c2fa169d6c8f7975ea9e50c2c1e9dfdbcc071216.tar.bz2
Add support for C++ namespace-aware typo correction, e.g., correcting
vector<int> to std::vector<int> Patch by Kaelyn Uhrain, with minor tweaks + PCH support from me. Fixes PR5776/<rdar://problem/8652971>. Thanks Kaelyn! llvm-svn: 134007
Diffstat (limited to 'clang/lib/Sema/SemaTemplateVariadic.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateVariadic.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/clang/lib/Sema/SemaTemplateVariadic.cpp b/clang/lib/Sema/SemaTemplateVariadic.cpp
index 86d3bc1..daa1523 100644
--- a/clang/lib/Sema/SemaTemplateVariadic.cpp
+++ b/clang/lib/Sema/SemaTemplateVariadic.cpp
@@ -716,17 +716,19 @@ ExprResult Sema::ActOnSizeofParameterPackExpr(Scope *S,
case LookupResult::NotFound:
case LookupResult::NotFoundInCurrentInstantiation:
- if (DeclarationName CorrectedName = CorrectTypo(R, S, 0, 0, false,
- CTC_NoKeywords)) {
- if (NamedDecl *CorrectedResult = R.getAsSingle<NamedDecl>())
+ if (TypoCorrection Corrected = CorrectTypo(R.getLookupNameInfo(),
+ R.getLookupKind(), S, 0, 0,
+ false, CTC_NoKeywords)) {
+ if (NamedDecl *CorrectedResult = Corrected.getCorrectionDecl())
if (CorrectedResult->isParameterPack()) {
+ std::string CorrectedQuotedStr(Corrected.getQuoted(getLangOptions()));
ParameterPack = CorrectedResult;
Diag(NameLoc, diag::err_sizeof_pack_no_pack_name_suggest)
- << &Name << CorrectedName
- << FixItHint::CreateReplacement(NameLoc,
- CorrectedName.getAsString());
+ << &Name << CorrectedQuotedStr
+ << FixItHint::CreateReplacement(
+ NameLoc, Corrected.getAsString(getLangOptions()));
Diag(ParameterPack->getLocation(), diag::note_parameter_pack_here)
- << CorrectedName;
+ << CorrectedQuotedStr;
}
}