JuliaLowering: Separate type parameter scope from inner constructor scope
User-defined inner constructors are now placed in a separate scope_block
outside the type parameter scope, matching flisp behavior. This ensures
that local variables in inner constructors are distinct bindings from
type parameters of the same name.
Note: For full flisp compatibility, default constructors should also be
placed outside the type parameter scope. However, JuliaLowering currently
generates default constructor code at compile time (unlike flisp which
calls `_defaultctors` at runtime), and this code references field_types
directly in function signatures, requiring access to type parameter
bindings. Therefore, default constructors remain inside the type
parameter scope for now.
Fixes aviatesk/JETLS.jl#508
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>