Add parsing for 'fn destroy' (#5045)

Syntax is proposed in #5017, but has already been discussed with leads.
Semantics is left as a TODO.

---------

Co-authored-by: josh11b <15258583+josh11b@users.noreply.github.com>
This commit is contained in:
Jon Ross-Perkins
2025-03-03 17:37:10 +00:00
committed by GitHub
co-authored by josh11b
parent 437d3b9af6
commit c44e688e5d
19 changed files with 362 additions and 64 deletions
+5 -4
View File
@@ -377,9 +377,9 @@ class NodeStack {
Id::KindFor<SemIR::InstId>());
set_id_if_category_is(Parse::NodeCategory::Expr,
Id::KindFor<SemIR::InstId>());
set_id_if_category_is(Parse::NodeCategory::MemberName |
Parse::NodeCategory::NonExprIdentifierName,
Id::KindFor<SemIR::NameId>());
set_id_if_category_is(
Parse::NodeCategory::MemberName | Parse::NodeCategory::NonExprName,
Id::KindFor<SemIR::NameId>());
set_id_if_category_is(Parse::NodeCategory::ImplAs,
Id::KindFor<SemIR::InstId>());
set_id_if_category_is(Parse::NodeCategory::Decl |
@@ -469,11 +469,13 @@ class NodeStack {
case Parse::NodeKind::ForHeader:
case Parse::NodeKind::ForHeaderStart:
case Parse::NodeKind::ForIn:
case Parse::NodeKind::IdentifierNameQualifierWithoutParams:
case Parse::NodeKind::IdentifierPackageName:
case Parse::NodeKind::IfConditionStart:
case Parse::NodeKind::ImportIntroducer:
case Parse::NodeKind::IndexExprStart:
case Parse::NodeKind::InvalidParseStart:
case Parse::NodeKind::KeywordNameQualifierWithoutParams:
case Parse::NodeKind::LibraryIntroducer:
case Parse::NodeKind::LibrarySpecifier:
case Parse::NodeKind::MatchCase:
@@ -494,7 +496,6 @@ class NodeStack {
case Parse::NodeKind::NamedConstraintDefinitionStart:
case Parse::NodeKind::NamedConstraintIntroducer:
case Parse::NodeKind::NameQualifierWithParams:
case Parse::NodeKind::NameQualifierWithoutParams:
case Parse::NodeKind::NamespaceStart:
case Parse::NodeKind::PackageIntroducer:
case Parse::NodeKind::ParenExprStart: