mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[AutoDiff] Serialize and print @derivative and @transpose accessor kind. (#32839)
Serialize and print the optional accessor kind in `@derivative` and `@transpose` attributes. Resolves TF-1293.
This commit is contained in:
@@ -4371,16 +4371,26 @@ llvm::Error DeclDeserializer::deserializeDeclAttributes() {
|
||||
case decls_block::Derivative_DECL_ATTR: {
|
||||
bool isImplicit;
|
||||
uint64_t origNameId;
|
||||
bool hasAccessorKind;
|
||||
uint64_t rawAccessorKind;
|
||||
DeclID origDeclId;
|
||||
uint64_t rawDerivativeKind;
|
||||
ArrayRef<uint64_t> parameters;
|
||||
|
||||
serialization::decls_block::DerivativeDeclAttrLayout::readRecord(
|
||||
scratch, isImplicit, origNameId, origDeclId, rawDerivativeKind,
|
||||
parameters);
|
||||
scratch, isImplicit, origNameId, hasAccessorKind, rawAccessorKind,
|
||||
origDeclId, rawDerivativeKind, parameters);
|
||||
|
||||
Optional<AccessorKind> accessorKind = None;
|
||||
if (hasAccessorKind) {
|
||||
auto maybeAccessorKind = getActualAccessorKind(rawAccessorKind);
|
||||
if (!maybeAccessorKind)
|
||||
MF.fatal();
|
||||
accessorKind = *maybeAccessorKind;
|
||||
}
|
||||
|
||||
DeclNameRefWithLoc origName{DeclNameRef(MF.getDeclBaseName(origNameId)),
|
||||
DeclNameLoc(), None};
|
||||
DeclNameLoc(), accessorKind};
|
||||
auto derivativeKind =
|
||||
getActualAutoDiffDerivativeFunctionKind(rawDerivativeKind);
|
||||
if (!derivativeKind)
|
||||
|
||||
Reference in New Issue
Block a user