Skip to content

Making introspection macros work for broadcasting syntax (.) #28615

Closed
@roberthoenig

Description

@roberthoenig
julia> versioninfo()
Julia Version 1.0.0
Commit 5d4eaca0c9 (2018-08-08 20:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, haswell)
Environment:
  JULIA_EDITOR = code

julia> @which abs.([1,2,3])
ERROR: no unique matching method found for the specified argument types
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] which(::Any, ::Any) at ./reflection.jl:922
 [3] top-level scope at none:0

julia> @code_lowered abs.([1,2,3])
0-element Array{Union{Nothing, CodeInfo},1}

In the code above I'd expect @which to return broadcast and @code_lowered to return whatever code that broadcast gets lowered to.

If the loop fusion magic behind the scenes turns out to be complicated to work with these macros, clearer error messages (or, in the case of @code_lowered, an error message), would be great as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    broadcastApplying a function over a collectionerror handlingHandling of exceptions by Julia or the user

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions