Skip to content

Commit

Permalink
make sure .= uses Base.identity, not a local identity (#18122)
Browse files Browse the repository at this point in the history
(cherry picked from commit b117e59)
  • Loading branch information
stevengj authored and tkelman committed Aug 20, 2016
1 parent fd5bfed commit ca5c823
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/julia-syntax.scm
Original file line number Diff line number Diff line change
Expand Up @@ -1695,7 +1695,7 @@
(expand-forms `(call (top broadcast!) ,(from-lambda (cadr e)) ,lhs-view ,@(caddr e))))
(if (null? lhs)
(expand-forms e)
(expand-forms `(call (top broadcast!) identity ,lhs-view ,e))))))
(expand-forms `(call (top broadcast!) (top identity) ,lhs-view ,e))))))

;; table mapping expression head to a function expanding that form
(define expand-table
Expand Down
4 changes: 4 additions & 0 deletions test/broadcast.jl
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,10 @@ let d = Dict(:foo => [1,3,7], (3,4) => [5,9])
d[3,4] .-= 1
@test d[3,4] == [4,8]
end
let identity = error, x = [1,2,3]
x .= 1 # make sure it goes to broadcast!(Base.identity, ...), not identity
@test x == [1,1,1]
end

# PR 16988
@test Base.promote_op(+, Bool) === Int
Expand Down

0 comments on commit ca5c823

Please sign in to comment.