It was posted -- I saw Jeff fix this. On Sunday, June 1, 2014, Ivar Nesje <iva...@gmail.com> wrote:
> It does not look like this was ever posted in the github tracker. > > kl. 17:33:37 UTC+2 onsdag 28. mai 2014 skrev Jameson følgende: >> >> Looks like a code lowering bug. Can you post this to the github issue >> tracker? >> >> On Wednesday, May 28, 2014, Adam Kapor <adam....@gmail.com> wrote: >> >>> I'm not sure what :(::) is supposed to do below, but not giving an error >>> at top level suggests to me that x[1] is "an expression computing a value." >>> In any case, I was surprised that += runs but doesn't `setindex!` x >>> >>> >>> julia> x=zeros(2) >>> 2-element Array{Float64,1}: >>> 0.0 >>> 0.0 >>> julia> x[1]::Float64 += 1. >>> 1.0 >>> julia> x >>> 2-element Array{Float64,1}: >>> 0.0 >>> 0.0 >>> julia> x[1]::Float64 = 1. >>> ERROR: syntax: invalid assignment location "x[1]" >>> >>> julia> myf(x) = x[1]::Float64+=1 >>> myf (generic function with 1 method) >>> julia> code_lowered(myf,(Array,)) >>> 1-element Array{Any,1}: >>> :($(Expr(:lambda, {:x}, {{:#s36,:#s40},{{:x,:Any,0},{: >>> #s36,:Any,18},{:#s40,:Float64,2}},{}}, :(begin # none, line 1: >>> #s40 = top(typeassert)(top(convert)(Float64,getindex(x,1)), >>> Float64) >>> #s36 = top(typeassert)(#s40,Float64) + 1 >>> #s40 = top(typeassert)(top(convert)(Float64,#s36),Float64) >>> return #s36 >>> end)))) >>> julia> myf_noassert(x) = x[1]+=1 >>> myf_noassert (generic function with 1 method) >>> julia> code_lowered(myf_noassert, (Array,)) >>> 1-element Array{Any,1}: >>> :($(Expr(:lambda, {:x}, {{:#s30},{{:x,:Any,0},{:#s30,:Any,18}},{}}, >>> :(begin # none, line 1: >>> #s30 = getindex(x,1) + 1 >>> setindex!(x,#s30,1) >>> return #s30 >>> end)))) >>> >>>