dgoldman marked an inline comment as done.
dgoldman added inline comments.
================
Comment at: lib/Sema/SemaExprCXX.cpp:7762-7787
// Ensure none of the TypoExprs have multiple typo correction candidates
// with the same edit length that pass all the checks and filters.
// TODO: Properly handle various permutations of possible corrections when
// there is more than one potentially ambiguous typo correction.
// Also, disable typo correction while attempting the transform when
// handling potentially ambiguous typo corrections as any new TypoExprs
will
// have been introduced by the application of one of the correction
----------------
rsmith wrote:
> dgoldman wrote:
> > rsmith wrote:
> > > What happens if an ambiguous `TypoExpr` is created as a result of one of
> > > the outer level transformations?
> > >
> > > In that case, I think that we will try alternatives for that `TypoExpr`
> > > here, but that `TypoExpr` is not in the expression we're transforming (it
> > > was created within `RecursiveTransformLoop` and isn't part of `E`), so
> > > we're just redoing the same transformation we already did but with
> > > typo-correction disabled. This means that the transform will fail
> > > (because we hit a typo and can't correct it), so we'll accept the
> > > original set of corrections despite them being ambiguous.
> > So what do you recommend here? Checking for the non-ambiguity in
> > `RecursiveTransformLoop` itself?
> Suggestion: in the recursive transform, if we find a potential ambiguity,
> check whether it's actually ambiguous before returning. If it is ambiguous,
> fail out of the entire typo-correction process: one of our tied-for-best
> candidates was ambiguous, so we deem the overall typo-correction process to
> be ambiguous. And if not, then carry on as in your current patch.
>
Will submit a follow up patch to handle this, I think I'll likely rewrite the
ambiguity handling to remove the `AmbiguousTypoExprs` bit.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D62648/new/
https://reviews.llvm.org/D62648
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits