[rustjava-bootstrap-argument-diagnostic-names-index-and-tag] fix(classfile): 부트스트랩 인자 거부가 어느 인자·무엇을 찾았는지 말한다 - #73
Merged
Conversation
…sfile): 부트스트랩 인자 거부가 어느 인자·무엇을 찾았는지 말한다
…igin/main — 승인된 원장 2파일 합집합 충돌 = REPORT.md · STATE.md 2건(전건 원장 · 코드 충돌 0 · 측정 2026-09-21T16:35:24Z). 해소 = 양쪽 항목 전건 보존 합집합, 이 회차 항목을 커밋 시각(2026-09-18T17:39:56+09:00) 자리에 끼웠다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The bootstrap-argument rule refused with a
&'static strand threw away the two things it already held: which argument, and what it found there. The predicate returnedboolfrom insidearguments.iter().all(|index| ...)— the index was in hand at the moment it said no.Not a new diagnostic scheme.
ClassFileError::UnsupportedVersion(u16)already carries a value through all three layers andformat!s it at the boundary; this copies that shape.Before / after on
test-data/ldc/LdcDynamicBSMArgPastEnd.class, via the CLI:Three asks: 3/3 — expected, index (
argument_index, plusmethod_indexbecause OpenJDK's message omits it and is ambiguous when a class has several bootstrap methods), actual (the kind name of what the argument named).The bidirectional test that matters:
StringConcatcarries one bootstrap argument, soargument_indexis 0 whether the code computes it or hardcodes it.Lambda.classcarries three — breaking #0 versus #2 moves the reported index 0 → 2.Cost, measured:
ClassFileErrorstaysCopyand does not grow (a test asserts the size), so no allocation and no hot-path change. The&'static strvariant and its other fourteen rules are untouched; the one structural consumer (From<ClassFileError>injvm-bytecode) gained an arm rather than changing one.Adopted proposal:
2026-09-18-bootstrap-argument-diagnostic-sequencing#p0