struct someStruct {
var foo: String?
var bar: String?
}
var someOptional: someStruct? = someStruct()
someOptional?.bar = someOptional?.foo
This code causes the following error on the last line.
Overlapping accesses to 'someOptional', but modification requires exclusive access; consider copying to a local variable
If I replace the last line with the following, then the program works as expected.
let foo = someOptional?.foo
someOptional?.bar = foo
Why is the first example causing an error, and why does the alternate version (which I would assume to be identical) not?