rnk added inline comments.

================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:4310-4311
 
       // If no results were found, try to correct typos.
       TypoCorrection Corr;
       MemInitializerValidatorCCC CCC(ClassDecl);
----------------
rnk wrote:
> We have to make sure our MS compatibility logic fires *before* we try to 
> correct typos. It's currently a big issue that we don't. You can try 
> adjusting your test case by adding a similarly named class like `Baze` and 
> see if you still get the desired behavior.
> 
> See this old issue from 2014:
> https://github.com/llvm/llvm-project/issues/20623
What I'd like to see is just to move the MSVCCompat check up before the typo 
correction. Basically, once we start typo correction, we *must* emit an error 
diagnostic. We may attempt to recover by returning a recovery AST node, but the 
compilation should fail overall.

I think in practice, we only do typo correction if lookup is empty, and your 
code only fires if name lookup returns a single result, so it's functionally 
equivalent to reorder these codepaths. I'd prefer that structure, mostly for 
readability.


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

https://reviews.llvm.org/D124666

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

Reply via email to