[swift-dev] Exclusivity checker hacking?
Jordan Rose
jordan_rose at apple.com
Thu Oct 5 17:08:33 CDT 2017
> On Oct 5, 2017, at 13:42, David Zarzycki via swift-dev <swift-dev at swift.org> wrote:
>
> Hello,
>
> As an experiment, I’d like to force the exclusivity checking logic to always error at compile time, rather than a mix of compile time and run time. Near as I can tell, there is no built in debugging logic to do this (not even to warn when dynamic checks are added). Am I missing something? Where would be the best place in the code to make the dynamic checker error/warning at compile time? Would a warning be useful to others? Or should I just keep this on a throwaway branch?
It's worth noting that this is impossible in the general case:
// Library.swift
public class Foo {
public var x: Int = 0
public init() {}
}
public func testExclusivity(_ a: Foo, _ b: Foo, by callback: (inout Int, inout Int) -> Void) {
callback(&a.x, &b.x)
}
// Client.swift, compiled as a separate target
let foo = Foo()
testExclusivity(foo, foo) { $0 = 42; $1 = 8192 }
That doesn't necessarily mean there aren't improvements to be made, but it might change your goals.
Jordan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20171005/3a3e4212/attachment.html>
More information about the swift-dev
mailing list