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
>

Reply via email to