[PATCH] D124726: Suggest typoed directives in preprocessor conditionals
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed May 11 09:33:15 PDT 2022
aaron.ballman added inline comments.
================
Comment at: llvm/lib/Support/StringRef.cpp:102
+// Find a similar string in `Candidates`.
+Optional<std::string> StringRef::find_similar_str(const std::vector<StringRef> &Candidates, size_t Dist) const {
+ // We need to check if `rng` has the exact case-insensitive string because the Levenshtein distance match does not
----------------
ken-matsui wrote:
> aaron.ballman wrote:
> > I am less convinced that we want this as a general interface on `StringRef`. I think callers need to decide whether something is similar enough or not. For example, case sensitivity may not matter for this case but it might matter to another case. Others may wish to limit the max edit_distance for each of the candidates for performance reasons, others may not. We already saw there were questions about whether to allow replacements or not. That sort of thing.
> >
> > I think this functionality should be moved to PPDirectives.cpp as a static helper function that's specific to this use. Also, because this returns one of the candidates passed in, and those are a `StringRef`, I think this function should return a `StringRef` -- this removes allocation costs. I'd also drop the `Dist` parameter as the function is no longer intended to be a general purpose one.
> I am also in favor of it, but where should I put tests for this functionality?
> Is it possible to write unit tests for static functions implemented in `.cpp` files?
This is something we wouldn't usually add tests for directly but instead test the behavior of through lit -- the tests you already have exercise this code path and would show if there's a situation where we expect a viable candidate and don't find any. So I'd not worry about test coverage for it in this case.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D124726/new/
https://reviews.llvm.org/D124726
More information about the cfe-commits
mailing list