sammccall accepted this revision.
sammccall added inline comments.
This revision is now accepted and ready to land.


================
Comment at: clang/lib/Sema/SemaOverload.cpp:14083
     OverloadCandidateSet::iterator Best;
+    bool Succeeded = true;
     switch (CandidateSet.BestViableFunction(*this, UnresExpr->getBeginLoc(),
----------------
seems like `bool Success = false` would be a "safer" default and have to be set 
in fewer places


================
Comment at: clang/lib/Sema/SemaOverload.cpp:14105
 
     case OR_No_Viable_Function:
       CandidateSet.NoteCandidates(
----------------
hokein wrote:
> It is a bit sad that the broken function call cases (too many/few agguments) 
> are failing into this group, all candidates are not viable -- this means we 
> don't get any benefits (no `Best`), for some cases, it is suboptimal even 
> though the best candidate looks like obvious.
> 
> ```
> class Collection {
>   const char *find(int) const;
>   char* find(int);
> };
> void test1(const Collection &C) {
>  C.find(); // we want const char*, but all overloads are not viable and 
> return types are not the same, so no type captured here.
> }
> ```
Yeah, at some point we can add more heuristics (discard non-viable or hidden 
functions using heuristics) to handle this case, like I did in 
SemaCodeComplete...


================
Comment at: clang/lib/Sema/SemaOverload.cpp:14133
     }
+    // Overload resolvation fails, try to recover.
+    if (!Succeeded)
----------------
resolvation -> resolution


================
Comment at: clang/test/AST/ast-dump-recovery.cpp:123
+
+  // FIXME: capture the type!
+  f.func(1);
----------------
why does this not work?
isn't there only one candidate, so chooseRecoveryType should pick it?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80109/new/

https://reviews.llvm.org/D80109



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to