[PATCH] D65591: [AST] Add a flag indicating if any subexpression had errors

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 12 05:07:45 PDT 2019

aaron.ballman added a comment.

Rather than adding a bit onto `Expr` to specify whether it's erroneous, have you considered making this a property of the type system by introducing an `ErrorExpr` AST node that other nodes can inherit from? I think that approach would work more naturally for things like AST matchers while solving some problems we have with being able to pretty printing or AST dump erroneous ASTs. The `ErrorExpr` node could contain a subnode of a partially-valid `Expr` object that would retain as much of the information as we've been able to gather, but the error node (or its subclasses) could contain other information useful when handling errors, such as storing the original source text (or range) for the expression, potential fixes, etc.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list