SE-0176 Enforce Exclusive Access to Memory (https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md) states that "Accesses to different stored properties of a struct or different elements of a tuple are allowed to overlap."
And indeed this compiles and runs as expected (Xcode 9 beta 4): // main.swift func foo() { var tuple = (1, 2) swap(&tuple.0, &tuple.1) print(tuple) } foo() However, if the tuple is a global variable, it crashes with a runtime exception: // main.swift var tuple = (1, 2) swap(&tuple.0, &tuple.1) print(tuple) Simultaneous accesses to 0x100401cb0, but modification requires exclusive access. Previous access (a modification) started at tupleaccess`main + 76 (0x1000015cc). Current access (a modification) started at: 0 tupleaccess 0x0000000100335b60 swift_beginAccess + 605 1 tupleaccess 0x0000000100001580 main + 110 2 libdyld.dylib 0x00007fffa7284234 start + 1 Is there anything special with simultaneous access to members of a global tuple, or is this a bug? Regards, Martin _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users