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

Reply via email to