<?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 getcursor-recovery.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>8222107a - [AST] Preserve the type in RecoveryExprs for broken function calls.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Index/getcursor-recovery.cpp#8222107a</link>
        <description>[AST] Preserve the type in RecoveryExprs for broken function calls.RecoveryExprs are modeled as dependent type to prevent bogus diagnosticsand crashes in clang.This patch allows to preseve the type for broken calls when theRecoveryEprs have a known type, e.g. a broken non-overloaded call, aoverloaded call when the all candidates have the same return type, sothat more features (code completion still work on &quot;take2args(x).^&quot;) stillwork.However, adding the type is risky, which may result in more clang code beingaffected leading to new crashes and hurt diagnostic, and it requires largeeffort to minimize the affect (update all sites in clang to handle errorDependcase), so we add a new flag (off by default) to allow us to develop/testthem incrementally.This patch also has some trivial fixes to suppress diagnostics (to prevent regressions).Tested:all existing tests are passed (when both &quot;-frecovery-ast&quot;, &quot;-frecovery-ast-type&quot; flags are flipped on);Reviewed By: sammccallSubscribers: rsmith, arphaman, cfe-commitsTags: #clangDifferential Revision: https://reviews.llvm.org/D79160

            List of files:
            /llvm-project-15.0.7/clang/test/Index/getcursor-recovery.cpp</description>
        <pubDate>Fri, 08 May 2020 14:13:17 +0000</pubDate>
        <dc:creator>Haojian Wu &lt;hokein.wu@gmail.com&gt;</dc:creator>
    </item>
<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/Index/getcursor-recovery.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/Index/getcursor-recovery.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>
