diff --git a/src/julia-syntax.scm b/src/julia-syntax.scm index 40eb5fc33a139..f456a68bf1ea4 100644 --- a/src/julia-syntax.scm +++ b/src/julia-syntax.scm @@ -1682,7 +1682,9 @@ (else (cf (cdr old-fargs) (cdr old-args) (cons farg new-fargs) (cons arg new-args) renames varfarg vararg)))))) - (cf (cdadr f) args '() '() '() '() '())) + (if (and (= (length args) 1) (integer? (car args))) + e ; hack: don't compress e.g. f.(1) so that deprecation for getfield works + (cf (cdadr f) args '() '() '() '() '()))) e)) ; (not (fuse? e)) (let ((e (compress-fuse (dot-to-fuse rhs))) ; an expression '(fuse func args) if expr is a dot call (lhs-view (ref-to-view lhs))) ; x[...] expressions on lhs turn in to view(x, ...) to update x in-place diff --git a/test/broadcast.jl b/test/broadcast.jl index 70b2b39beb3fc..f14788413f05a 100644 --- a/test/broadcast.jl +++ b/test/broadcast.jl @@ -174,6 +174,7 @@ rt = Base.return_types(broadcast!, Tuple{Function, Array{Float64, 3}, Array{Floa let x = [1,3.2,4.7], y = [3.5, pi, 1e-4], α = 0.2342 @test sin.(x) == broadcast(sin, x) @test sin.(α) == broadcast(sin, α) + @test sin.(3.2) == broadcast(sin, 3.2) == sin(3.2) @test factorial.(3) == broadcast(factorial, 3) @test atan2.(x, y) == broadcast(atan2, x, y) @test atan2.(x, y') == broadcast(atan2, x, y')