No. 018 (2025.07.03)
前回
No. 017 (2025.06.12)
参加者
yuchi yamaguchi.icon abap34
mrkn
https://github.com/c42f/JuliaLowering.jl
読み進めていく
expand_forms_3 を
DesugaringContext がわたされて ScopeResolutionContext が生える
desugar で作るのが必要な変数があるから DesugaringContext でもう bindings 情報がある
explicit, implicit な local ← これ何??
explicit: メソッド自体, 引数, 静的パラメータ, local 宣言されたやつ, global 宣言したやつ
implicit: それ以外
find_scope_vars → expilicit な binding を作って, implicit な名前を全部集める
code:julia
julia> function f(x)
local x
end
ERROR: syntax: local variable name "x" conflicts with an argument
Stacktrace:
1 top-level scope
@ REPL2:1
今の lowering でも同様にここでそのようなチェックをするので,宣言時に local {args にあるやつ} はエラーになる
analyze_scope の implicit な変数に対する処理がよくわからない😵
macro expansion だと local? global なのは実質 stack 1 つってことでいい?
→ 具体的なサンプルコードで動作確認しながらやった方が良さそう