<div dir="ltr"><p>Looks like a bug…strangely, lldb’s giving <code>number: Int = 5678</code>.</p>
<br><br><div class="gmail_quote"><div dir="ltr">On Thu, Jun 16, 2016 at 10:18 PM Martin R via swift-users &lt;<a href="mailto:swift-users@swift.org">swift-users@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I wonder why the Swift compiler does not complain about the<br>
redeclaration of `number` after the guard-statement in top-level code:<br>
<br>
    // main.swift<br>
    import Swift<br>
<br>
    guard let number = Int(&quot;1234&quot;) else { fatalError() }<br>
    print(number) // Output: 1234<br>
    let number = 5678<br>
    print(number) // Output: 1234<br>
<br>
It looks as if the statement `let number = 5678` is completely ignored.<br>
<br>
However, doing the same inside a function causes a compiler error:<br>
<br>
    func foo() {<br>
        guard let number = Int(&quot;1234&quot;) else { fatalError() }<br>
        print(number)<br>
        let number = 5678 //  error: definition conflicts with previous value<br>
    }<br>
<br>
Tested with<br>
- Xcode 7.3.1, &quot;Default&quot; and &quot;Snapshot 2016-06-06 (a)&quot; toolchain<br>
- Xcode 8 beta.<br>
<br>
Am I overlooking something or is that a bug?<br>
<br>
Martin<br>
_______________________________________________<br>
swift-users mailing list<br>
<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-users" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-users</a><br>
</blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">-Saagar Jha</div></div>