Good to know. I also saw there's another related one where Steven reported an almost identical code sample: https://github.com/JuliaLang/julia/issues/6901
On Wednesday, December 9, 2015 at 11:03:45 AM UTC-5, Isaiah wrote: > > Something weird/unexpected does seem to be going on here: >> > > There are some other edge cases like this where otherwise-top-level > expressions fail (essentially: the lowered code contains a `goto`, which > the interpreter doesn't support. so the thunk is sent to the JIT instead, > which can't yet handle `using`) > > see e.g. > https://github.com/JuliaLang/julia/issues/2586 > https://github.com/JuliaLang/julia/issues/4893 > > On Wed, Dec 9, 2015 at 10:50 AM, Josh Langsfeld <jdl...@gmail.com > <javascript:>> wrote: > >> But an if statement does not introduce new scope, correct? >> >> Something weird/unexpected does seem to be going on here: >> >> julia> VERSION >> v"0.5.0-dev+1491" >> >> julia> if true >> using Compat >> println("Using") >> foreach(println, 1:3) >> end >> Using >> 1 >> 2 >> 3 >> >> >> julia> if true >> using Compat >> println("Using") >> for i=1:3 >> println(i) >> end >> end >> ERROR: error compiling anonymous: unsupported or misplaced expression >> "using" in function anonymous >> in eval at ./boot.jl:263 >> >> >> >> On Wednesday, December 9, 2015 at 10:22:51 AM UTC-5, Steven G. Johnson >> wrote: >>> >>> A using statement affects the global scope, so it doesn't make a lot of >>> sense to evaluate it in local scope. That's why it's not allowed. The eval >>> function evaluates in global scope, so it can execute a using statement. >>> >>> In general, though, if you are eval'ing a using statement, you should >>> probably reorganize your code to do the using directly in global scope. For >>> example, put your code into a module if you want to keep the using >>> statement isolated from other code. >>> >> >