A `distributed` member's thunk is a synthesized FuncDecl annotated
`@nonisolated @concurrent`, so its `self` must not be actor-isolated.
SILGen builds the SIL type from `SILDeclRef(thunkDecl).asDistributed()`
(nonisolated). Client module's call sites in `SILGenApply` instead flip
the distributedThunk bit on the *original* accessor's SILDeclRef,
leaving `getDecl()` as the actor-isolated originator.
`makeConstantInterfaceType` then used the type of the original decl
which would be actor isolated, causing the `@sil_isolated @guaranteed
self` type to be produced, clashing with the correct nonisolated real
state of the func.
Note that this is fixed the same way for autodiff in this func already a
few lines above:
```
if (auto *derivativeId = c.getDerivativeFunctionIdentifier()) { ... }
```
so I think this is fine to solve like this; also, we do want those decl
refs to point at the real func AFAIR so I think this is the right fix.
resolves rdar://180980491