[swift/release/5.9] [clang][AST] Temporarily disable assert in getInjectedClassNameType #7007
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When LLDB ASTImports a class declaration it will create a new default-constructed RecordDecl. Such a default-constructerd decl doesn't have its
TypeForDecl
set correctly yet. To determine theTypeForDecl
, ASTImporter calls DeclContext::lookup() on the new decl. If we have an external source like the ASTReader installed on the ASTContext, we can end up calling into getInjectedClassNameType. If the external source created a redeclaration chain between this new ASTImporter decl and the external one, we can end up temporarily setting theTypeForDecl
to one that is not anInjectedClassNameType
. This invariant is only briefly violated and later corrected by the ASTImporter. But at that point we already tripped this assert duringDeclContext::lookup()
.Because this potentially requires significant/risky changes to LLDB, disable this assert for now in order to unblock swift compiler devs working with nightly (i.e., assert-enabled) builds of LLDB.
rdar://109876539