<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On May 15, 2016, at 7:00 PM,&nbsp;Neil Faiman&nbsp;wrote:</div><br class="Apple-interchange-newline"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Georgia; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "></span><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Georgia; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">This function seems simple enough:<br><br><br>&nbsp;&nbsp;&nbsp;func foo(a: [Int], n: Int) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var x : [Int] = a[0..&lt;n]<br>&nbsp;&nbsp;&nbsp;}<br><br>But it doesn’t compile.<br><br></span>&nbsp;error: ambiguous subscript with base type '[Int]' and index type 'Range&lt;Int&gt;'<br>&nbsp;<br>The oddity is that if I change the assignment to this<br><br><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Georgia; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">&nbsp; &nbsp;var y : [Int] = Array(a[0..&lt;n])<br><br>then the compiler is happy.<br><br>Shouldn’t it be able to do any necessary type inference from the fact that the expression is in a context where an array is required?<br></span></blockquote><br></div><div>I hit the same mysterious compiler message today.</div><div><br></div><div>Just because an initializer exists doesn't mean Swift will do automatic type conversion for you.</div><div>Swift is not AppleScript.</div><div>You can't even do this:</div><div>let x:Int32 = 0</div><div>let y:Int = x</div><div><br></div><div>ArraySlice is conceptually different from Array. For example the first index of a slice need not be zero.</div><div><br></div><div>Jan E.</div><br></body></html>