cloudwego / cloudwego/abcoder

The import-reexport problem

Abierto
#54 1 comentario 0 reacciones 0 asignados Ver en GitHub
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.