> On 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?

Hi Martin,

Yes, this looks like a bug. Can you open a report at bugs.swift.org 
<http://bugs.swift.org/>?

Mark

> 
> Martin
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to