The import-reexport problem
- 主要言語
- Go
- スター
- 391
- フォーク
- 58
- 平均マージ
- 2日 21時間
- マージ済み PR(30日)
- 1
説明
相关分支:https://github.com/cloudwego/abcoder/tree/fix/reexport
在 rust 和 python 中,存在一种情况是一个文件 import 了一个符号以后,从自己的位置 export 出去
```
// rust
// (文件是 cur.rs, pkgPath is cur)
mod foo; // 子模块是 private 的
pub use foo::bar; // 但是 bar 函数是 public 的
// 这个 pkg 的 user 应当通过 cur::bar 来访问 bar
// 不能通过 cur::foo::bar,会产生错误
// python
from math import cos // 当前文件 export 了 cos
```
在 Rust 的情况中,我们应当确保 cur::bar 是外部可见的.
现在的实现里,pkgPath=cur 的地方没有 bar,但是 pkgPath=cur::foo 里有 bar。
这可能让大模型认为 bar 的用法是 cur::foo::bar
コントリビューションガイド
調査の方向性
リンクされた fix/reexport ブランチを出発点として使用し、次に pkgPath によってエクスポートされたシンボルを記録しているコードを特定してください。Rust の cur::bar の例と現在の cur::foo::bar の結果を比較し、Python のインポート・リエクスポートのケースを確認してください。現在のパッケージパスからリエクスポートされたシンボルを利用でき、プライベートなモジュールパスを公開していなければ完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- go, python, rust
- 領域
- compilers, devtools
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100