Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

The import-reexport problem

未关闭
#54 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
go, python, rust

调研方向

以链接的 fix/reexport 分支为起点,然后定位按 pkgPath 记录导出符号的代码。将 Rust 的 cur::bar 示例与当前的 cur::foo::bar 结果进行比较,并检查 Python 的导入-再导出情况。当从当前包路径可以访问再导出的符号,且不会暴露私有模块路径时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

相关分支: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

主要语言
Go
星标
391
派生
58
平均合并
2 天 21 小时
30 天内合并 PR
1

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

cloudwego/abcoder 的其他 Issue

查看 cloudwego/abcoder 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。