Looks like a bug…strangely, lldb’s giving number: Int = 5678.
On Thu, Jun 16, 2016 at 10:18 PM Martin R via swift-users < swift-users@swift.org> wrote: > Hi, > > I wonder why the Swift compiler does not complain about the > redeclaration of `number` after the guard-statement in top-level code: > > // main.swift > import Swift > > guard let number = Int("1234") else { fatalError() } > print(number) // Output: 1234 > let number = 5678 > print(number) // Output: 1234 > > It looks as if the statement `let number = 5678` is completely ignored. > > However, doing the same inside a function causes a compiler error: > > func foo() { > guard let number = Int("1234") else { fatalError() } > print(number) > let number = 5678 // error: definition conflicts with previous > value > } > > Tested with > - Xcode 7.3.1, "Default" and "Snapshot 2016-06-06 (a)" toolchain > - Xcode 8 beta. > > Am I overlooking something or is that a bug? > > Martin > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users > -- -Saagar Jha
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users