# Why \`@code\_lowered (1,2,3) .+ 1\` returns error?

**URL:** https://discourse.julialang.org/t/why-code-lowered-1-2-3-1-returns-error/15019
**Category:** General Usage
**Created:** [September 16, 2018, 3:20pm UTC](https://discourse.julialang.org/t/why-code-lowered-1-2-3-1-returns-error/15019 "2018-09-16T15:20:02Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![AdamR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamr/32/5109_2.png) [@AdamR](https://discourse.julialang.org/u/AdamR)
#### Post date: [September 16, 2018, 3:20pm UTC](https://discourse.julialang.org/t/why-code-lowered-1-2-3-1-returns-error/15019/1 "2018-09-16T15:20:02Z")

</div>

```julia
               _
   _ _ _(_)_ | Documentation: https://docs.julialang.org
  (_) | (_) (_) |
   _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` | |
  | | |_| | | | (_| | | Version 1.0.0 (2018-08-08)
 _/ |\ __'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |

julia> (1,2,3) .+ 1
(2, 3, 4)

julia> @code_lowered (1,2,3) .+ 1
ERROR: UndefVarError: .+ not defined
Stacktrace:
 [1] top-level scope at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/InteractiveUtils/src/macros.jl:118

```

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [September 16, 2018, 3:35pm UTC](https://discourse.julialang.org/t/why-code-lowered-1-2-3-1-returns-error/15019/2 "2018-09-16T15:35:19Z")

</div>

[https://github.com/JuliaLang/julia/issues/28992](https://github.com/JuliaLang/julia/issues/28992)

---

<div class="post-metadata">

### Author: ![AdamR](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adamr/32/5109_2.png) [@AdamR](https://discourse.julialang.org/u/AdamR)
#### Post date: [September 16, 2018, 3:56pm UTC](https://discourse.julialang.org/t/why-code-lowered-1-2-3-1-returns-error/15019/3 "2018-09-16T15:56:14Z")

</div>

Is there any walkaround to see the lowered form of this expression. In theory I should get object of type `Broadcasted(+, (1,2,3), 1)`. Or perhaps a function `broadcasted` with the same arguments.

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [September 16, 2018, 4:19pm UTC](https://discourse.julialang.org/t/why-code-lowered-1-2-3-1-returns-error/15019/4 "2018-09-16T16:19:20Z")

</div>

```julia
julia> Meta.lower(Main, :((1,2,3) .+ 1))
:($(Expr(:thunk, CodeInfo(
 1 ─ %1 = (Base.getproperty)(Base.Broadcast, :materialize) │
 │ %2 = (Base.getproperty)(Base.Broadcast, :broadcasted) │
 │ %3 = (Core.tuple)(1, 2, 3) │
 │ %4 = (%2)(+, %3, 1) │
 │ %5 = (%1)(%4) │
 └── return %5 │
))))

julia> f() = (1,2,3) .+ 1
f (generic function with 1 method)

julia> @code_lowered f()
CodeInfo(
1 1 ─ %1 = Base.Broadcast.materialize │
  │ %2 = Base.Broadcast.broadcasted │
  │ %3 = (Core.tuple)(1, 2, 3) │
  │ %4 = (%2)(Main.:+, %3, 1) │
  │ %5 = (%1)(%4) │
  └── return %5 │
)

```
