The import-reexport problem
- Lenguaje dominante
- Go
- Estrellas
- 390
- Forks
- 57
- Merge medio
- 2 d 21 h
- PR fusionados (30 d)
- 1
Descripción
相关分支: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
Guía de contribución
Línea de trabajo
Usa la rama fix/reexport enlazada como punto de partida y, después, localiza el código que registra los símbolos exportados mediante pkgPath. Compara el ejemplo de Rust cur::bar con el resultado actual cur::foo::bar y comprueba el caso de importación y reexportación de Python. Se considera terminado cuando el símbolo reexportado está disponible desde la ruta del paquete actual sin exponer la ruta del módulo privado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- go, python, rust
- Área
- compilers, devtools
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100