Skip to content

feat(renamer): shadow token JasmBody 槽——操作数引用部与尾随描述符展开 - #110

Closed
luiox wants to merge 0 commit into
mainfrom
feat/shadow-descriptor-slot
Closed

luiox wants to merge 0 commit into
mainfrom
feat/shadow-descriptor-slot

Conversation

@luiox

@luiox luiox commented Oct 30, 2026

Copy link
Copy Markdown
Owner

内容

resolveShadowJasmBody:指令操作数(助记符后引用型操作数)的单一收口分支,resolveShadowSlot 按 ShadowSlotPosition::JasmBody 分派。

  • 尾随描述符切分:以 ) 结尾取最后一个 ( 组之前为引用部、括号内为方法描述符;否则最后一个空格之后为字段描述符;无空格 = 纯类操作数。
  • 引用部分派序:整体 parseShadowRef 直达(ClassRef → 类内部名;MemberRef → rawOwner.rawName 复合;EscapedLiteral 保留字面);Malformed 且带 ${ 前缀 → 按首个 } 拆 owner handle + .name 复合,表查询错误(unknown-handle / missing-sidecar)原样直传,不被复合语境吞成 malformed-handle;其余 Raw 零漂移直通(显示文本的 shadow 复合名不含 ${ 形状)。
  • owner 自洽核验:嵌套 MemberRef 的 owner 与展开后 owner 不一致 → malformed-handle fail-loud。
  • 描述符部经 Descriptor 槽展开(内嵌类 handle)。

测试

JasmBody 槽 9 组 + 既有 28 组全绿;全仓 1893 通过(3 posix-skip)。覆盖:Raw 零漂移、类/成员/复合/嵌套 handle 展开、异 owner 冲突、缺 sidecar 硬报错、unknown-handle 直传、文法垃圾 fail-loud。

依赖:Descriptor 槽(#109,已并入)。

@luiox

luiox commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

留档:#109 已携带本分支全部内容——其 mergeCommit 4b05c8b 与原分支 tip 8d0f72a 树完全一致(git diff 8d0f72a 4b05c8b 为空;rebase 时 git 报 dropping 8d0f72a -- patch contents already upstream)。分支已 force-push 对齐 main(4d7dcc6,零剩余差异)。此前 CI 失败(孤立代理反汇编相关用例)系分支落后 main、未吃到 4d7dcc6 的 libjhasm 0.3.3 基线所致,对齐后不复存在。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant