Given Julia's scoping rules, a function can always access a variable from the enclosing module or global scope, and it will only be an error if the variable is undefined at runtime. As such, isdefined only looks at module and global scopes.
The only way to check something like this is to look at the function lambda externally (see also Lint.jl, which may already implement such a check). On Mon, May 11, 2015 at 6:11 PM, Juha Heiskala <[email protected]> wrote: > Hello, > > Am I missing something or doesn't isdefined detect local variables of a > function? > > > julia> foo()= begin bar=1; isdefined(current_module(), :bar); end > foo (generic function with 1 method) > > julia> foo() > false > > Best Regards, > > Juha > > julia version 0.3.5 > > julia> versioninfo() > Julia Version 0.3.5 > Commit a05f87b* (2015-01-08 22:33 UTC) > Platform Info: > System: Linux (x86_64-linux-gnu) > CPU: Intel(R) Core(TM) i7-3667U CPU @ 2.00GHz > WORD_SIZE: 64 > BLAS: libopenblas (NO_LAPACK NO_LAPACKE DYNAMIC_ARCH NO_AFFINITY) > LAPACK: liblapack.so.3 > LIBM: libopenlibm > LLVM: libLLVM-3.3 >
