Implement consuming and borrowing declaration-level modifiers from SE-0377.

`borrowing func`/`consuming func` control the ownership convention of `self` for
methods.
This commit is contained in:
Joe Groff
2023-02-28 21:17:08 -08:00
parent 71b0ea6351
commit 17c803724f
20 changed files with 205 additions and 35 deletions

View File

@@ -1538,13 +1538,19 @@ SDKNodeInitInfo::SDKNodeInitInfo(SDKContext &Ctx, ValueDecl *VD)
case SelfAccessKind::Mutating:
FuncSelfKind = "Mutating";
break;
case SelfAccessKind::Consuming:
case SelfAccessKind::LegacyConsuming:
// FIXME: Stay consistent with earlier digests that had underscores here.
FuncSelfKind = "__Consuming";
break;
case SelfAccessKind::NonMutating:
FuncSelfKind = "NonMutating";
break;
case SelfAccessKind::Consuming:
FuncSelfKind = "Consuming";
break;
case SelfAccessKind::Borrowing:
FuncSelfKind = "Borrowing";
break;
}
}