[PATCH] D64799: [Sema] Emit diagnostics for uncorrected delayed typos at the end of TU
Ilya Biryukov via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 16 08:23:58 PDT 2019
ilya-biryukov updated this revision to Diff 210105.
ilya-biryukov added a comment.
Fix a typo (xD)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64799/new/
https://reviews.llvm.org/D64799
Files:
clang/lib/Sema/Sema.cpp
clang/test/SemaObjC/typo-correction-subscript.m
Index: clang/test/SemaObjC/typo-correction-subscript.m
===================================================================
--- clang/test/SemaObjC/typo-correction-subscript.m
+++ clang/test/SemaObjC/typo-correction-subscript.m
@@ -9,6 +9,7 @@
- (void)rdar47403222:(Dictionary *)opts {
[self undeclaredMethod:undeclaredArg];
// expected-error at -1{{no visible @interface for 'Test' declares the selector 'undeclaredMethod:'}}
+ // expected-error at -2{{use of undeclared identifier 'undeclaredArg}}
opts[(__bridge id)undeclaredKey] = 0;
// expected-error at -1{{use of undeclared identifier 'undeclaredKey'}}
}
Index: clang/lib/Sema/Sema.cpp
===================================================================
--- clang/lib/Sema/Sema.cpp
+++ clang/lib/Sema/Sema.cpp
@@ -37,6 +37,7 @@
#include "clang/Sema/SemaInternal.h"
#include "clang/Sema/TemplateDeduction.h"
#include "clang/Sema/TemplateInstCallback.h"
+#include "clang/Sema/TypoCorrection.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/Support/TimeProfiler.h"
@@ -376,8 +377,6 @@
// Detach from the PP callback handler which outlives Sema since it's owned
// by the preprocessor.
SemaPPCallbackHandler->reset();
-
- assert(DelayedTypos.empty() && "Uncorrected typos!");
}
/// makeUnavailableInSystemHeader - There is an error in the current
@@ -910,6 +909,15 @@
assert(LateParsedInstantiations.empty() &&
"end of TU template instantiation should not create more "
"late-parsed templates");
+
+ // Report diagnostics for uncorrected delayed typos. Ideally all of them
+ // should have been corrected by that time, but it is very hard to cover all
+ // cases in practice.
+ for (const auto &Typo : DelayedTypos) {
+ // We pass an empty TypoCorrection to indicate no correction was performed.
+ Typo.second.DiagHandler(TypoCorrection());
+ }
+ DelayedTypos.clear();
}
/// ActOnEndOfTranslationUnit - This is called at the very end of the
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64799.210105.patch
Type: text/x-patch
Size: 1989 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190716/4fb15150/attachment-0001.bin>
More information about the cfe-commits
mailing list