The import-reexport problem
- Vorherrschende Sprache
- Go
- Sterne
- 390
- Forks
- 57
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 1
Beschreibung
相关分支: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
Beitragsleitfaden
Rechercherichtung
Verwende den verknüpften fix/reexport-Branch als Ausgangspunkt. Suche dann den Code, der exportierte Symbole anhand von pkgPath erfasst. Vergleiche das Rust-Beispiel cur::bar mit dem aktuellen Ergebnis cur::foo::bar und prüfe den Python-Fall für Import-Reexport. Die Aufgabe ist erledigt, wenn das re-exportierte Symbol über den aktuellen Paketpfad verfügbar ist, ohne den privaten Modulpfad offenzulegen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- go, python, rust
- Bereich
- compilers, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100