[swift-users] Cannot pass immutable value as inout argument

Geordie Jay geojay at gmail.com
Wed Jan 17 18:18:30 CST 2018


Jordan Rose via swift-users <swift-users at swift.org> schrieb am Mi. 17. Jan.
2018 um 01:38:

> Oh no, you're right, I'm sorry. You can only do that with arrays at the
> moment. We do have a bug for this already.
>
> Jordan
>

But couldn’t you call it like this:

lgs_notify_params_t(notify: [lgs_notify_did_enter_background])


For exactly that reason?

- Geordie


>
> On Jan 16, 2018, at 16:37, Roderick Mann <rmann at latencyzero.com> wrote:
>
> Xcode can't properly parse the C header to show me the Swift signature,
> but if I try calling it like this:
>
>    let p = lgs_notify_params_t(notify: lgs_notify_did_enter_background)
>    lgs_notify(self.ctx, p)
>
> I get this error:
>
> Cannot convert value of type 'lgs_notify_params_t' to expected argument
> type 'UnsafePointer<lgs_notify_params_t>!'
>
>
> On Jan 16, 2018, at 13:22 , Jordan Rose <jordan_rose at apple.com> wrote:
>
> You can do this if you don't write '&', which incorporates the caveat that
> you're not passing a stable address. But please file a bug anyway, because
> the diagnostic should tell you that!
>
> Jordan
>
>
> On Jan 16, 2018, at 13:10, Rick Mann via swift-users <
> swift-users at swift.org> wrote:
>
> Is it not possible for Swift to treat C API const pointers as something
> that can take let arguments?
>
>
> LGS_EXPORT bool lgs_notify(struct lgs_context_t* ctx, const
> lgs_notify_params_t* params);
> .
> .
> .
> let p = lgs_notify_params_t(...)
> lgs_notify(self.ctx, &p)
>                    ^Cannot pass immutable value as inout argument: 'p' is
> a 'let' constant
>
>
> Why isn't the "const" in the C declaration enough to let Swift know it's
> const and just allow it to be a let?
>
> --
> Rick Mann
> rmann at latencyzero.com
>
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
>
>
>
> --
> Rick Mann
> rmann at latencyzero.com
>
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20180118/7d151146/attachment.html>


More information about the swift-users mailing list