diff --git a/content/モジュールの名前環境解決を考慮した評価文脈.md b/content/モジュールの名前環境解決を考慮した評価文脈.md index d810e052..317c2073 100644 --- a/content/モジュールの名前環境解決を考慮した評価文脈.md +++ b/content/モジュールの名前環境解決を考慮した評価文脈.md @@ -10,17 +10,25 @@ struct Environment{ namespace:Option parent: Option - children: Vec + children: Vec, + span:Range, binds: Vec<(Symbol,V)> } ``` letでスコープを広げたときはnamespaceなしで辿ることにする -最終的にはLanguage ServerでSpanからEnvironment +最終的にはLanguage ServerでSpanからEnvironmentの位置を補足したいということになる。 + +基本的に、子環境のEnvironmentは常に親のEncより狭い範囲のSpanを持つはず。そして子要素同士のSpanは交差しないはず。 + +親から子要素を二分探索で辿って行って(Spanは交差しないからPartialOrdにできるはず) ```rust -fn get_normalized_name() +fn get_completions(arena:SlotMap<_>,root_env:EnvKey,span:Span){ + + +} ``` \ No newline at end of file