<p dir="auto">Ref. <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="190476770" data-permission-text="Title is private" data-url="https://github.com/JuliaLang/julia/issues/19364" data-hovercard-type="issue" data-hovercard-url="/JuliaLang/julia/issues/19364/hovercard?comment_id=394957888&amp;comment_type=issue_comment" href="https://github.com/JuliaLang/julia/issues/19364#issuecomment-394957888">#19364 (comment)</a></p>
<p dir="auto">The idea would be that given a file <code class="notranslate">bar.jl</code> with contents <code class="notranslate">y=5</code>, one could do</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="function foo()
    local y
    @include &quot;bar.jl&quot;
    return y
end"><pre class="notranslate"><span class="pl-k">function</span> <span class="pl-en">foo</span>()
    <span class="pl-k">local</span> y
    <span class="pl-c1">@include</span> <span class="pl-s"><span class="pl-pds">"</span>bar.jl<span class="pl-pds">"</span></span>
    <span class="pl-k">return</span> y
<span class="pl-k">end</span></pre></div>
<p dir="auto">and <code class="notranslate">foo()</code> would return 5, but not define a global variable <code class="notranslate">y</code> in the containing module. (Using the existing <code class="notranslate">include</code> function, <code class="notranslate">foo()</code> would define <code class="notranslate">y</code> globally and then fail because <code class="notranslate">y</code> is undefined in local scope.)</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="(&quot;before_first_compact&quot;, ir) = (&quot;before_first_compact&quot;,     1 ──       nothing
809 │          nothing
    │          nothing
    │    %4  = Base.Broadcast.axes(%%2)::Tuple{Base.OneTo{Int64}}
    │    %5  = Base.Broadcast.axes(%%3)::Tuple{Base.OneTo{Int64}}
    │    %6  = Base.Broadcast.:==(%4, %5)::Bool
    └───       goto 14 if not %6
    2 ──       nothing
811 3 ── %9  = Base.getproperty(%%3, :f)::NotInferenceDontLookHere.Const(-, false)
    │    %10 = Base.Broadcast.:===(%9, Base.Broadcast.identity)::NotInferenceDontLookHere.Const(false, false)
    └───       goto 4 if not %10
    4 ┄─ %12 = false::NotInferenceDontLookHere.Const(false, false)
    4 ┄─ %62 = π (%12, NotInferenceDontLookHere.Const(false, false))
└───       goto 5 if not %62"><pre class="notranslate"><code class="notranslate">("before_first_compact", ir) = ("before_first_compact",     1 ──       nothing
809 │          nothing
    │          nothing
    │    %4  = Base.Broadcast.axes(%%2)::Tuple{Base.OneTo{Int64}}
    │    %5  = Base.Broadcast.axes(%%3)::Tuple{Base.OneTo{Int64}}
    │    %6  = Base.Broadcast.:==(%4, %5)::Bool
    └───       goto 14 if not %6
    2 ──       nothing
811 3 ── %9  = Base.getproperty(%%3, :f)::NotInferenceDontLookHere.Const(-, false)
    │    %10 = Base.Broadcast.:===(%9, Base.Broadcast.identity)::NotInferenceDontLookHere.Const(false, false)
    └───       goto 4 if not %10
    4 ┄─ %12 = false::NotInferenceDontLookHere.Const(false, false)
    4 ┄─ %62 = π (%12, NotInferenceDontLookHere.Const(false, false))
└───       goto 5 if not %62
</code></pre></div>
<p dir="auto">Note the duplicate showing of BB4. Also pending nodes should be in yellow, which they don't appear to be anymore.</p>