<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in recovery-tree-transform.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>733edf97 - [AST] Add RecoveryExpr to retain expressions on semantic errors</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/SemaTemplate/recovery-tree-transform.cpp#733edf97</link>
        <description>[AST] Add RecoveryExpr to retain expressions on semantic errorsNormally clang avoids creating expressions when it encounters semanticerrors, even if the parser knows which expression to produce.This works well for the compiler. However, this is not ideal forsource-level tools that have to deal with broken code, e.g. clangd isnot able to provide navigation features even for names that compilerknows how to resolve.The new RecoveryExpr aims to capture the minimal set of informationuseful for the tools that need to deal with incorrect code:source range of the expression being dropped,subexpressions of the expression.We aim to make constructing RecoveryExprs as simple as possible toensure writing code to avoid dropping expressions is easy.Producing RecoveryExprs can result in new code paths being taken in thefrontend. In particular, clang can produce some new diagnostics now andwe aim to suppress bogus ones based on Expr::containsErrors.We deliberately produce RecoveryExprs only in the parser for now tominimize the code affected by this patch. Producing RecoveryExprs inSema potentially allows to preserve more information (e.g. type of anexpression), but also results in more code being affected. E.g.SFINAE checks will have to take presence of RecoveryExprs into account.Initial implementation only works in C++ mode, as it relies on compilerpostponing diagnostics on dependent expressions. C and ObjC often do notdo this, so they require more work to make sure we do not produce toomany bogus diagnostics on the new expressions.See documentation of RecoveryExpr for more details.original patch from IlyaThis change is based on https://reviews.llvm.org/D61722Reviewers: sammccall, rsmithReviewed By: sammccall, rsmithTags: #clangDifferential Revision: https://reviews.llvm.org/D69330

            List of files:
            /llvm-project-15.0.7/clang/test/SemaTemplate/recovery-tree-transform.cpp</description>
        <pubDate>Thu, 19 Mar 2020 15:30:40 +0000</pubDate>
        <dc:creator>Haojian Wu &lt;hokein.wu@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
