Skip to content

[rustjava-2026-09-17-link-lambdametafactory-boxing-adapter-adopt-p0] feat: 람다 링커에 int↔Integer 어댑터 — 한 쌍만 - #103

Merged
Jun025 merged 1 commit into
mainfrom
feat/lambda-boxing-adapter
Sep 27, 2026
Merged

Jun025 merged 1 commit into
mainfrom
feat/lambda-boxing-adapter

Conversation

@Jun025

@Jun025 Jun025 commented Sep 27, 2026

Copy link
Copy Markdown
Owner

Ticket: rustjava-2026-09-17-link-lambdametafactory-boxing-adapter-adopt-p0 (채택 2026-09-17-link-lambdametafactory#p0)

무엇을

  • jvm-bytecode/src/lambda.rs: 통과 전용 술어 adapts → 위치별 계획 plan. 통과는 종전 passes 를 먼저 그대로 묻고, 그 밖에는 int↔Integer 한 쌍만 삽입한다(나갈 때 Integer.valueOf · 들어올 때 Integer 검사 후 intValue · null → NPE · 다른 타입 → CCE). 링크 판정과 실행 시 변환이 같은 함수에서 나온다.
  • classfile::LambdaCallSite 에 instantiated_method_descriptor 추가 — 지워진 Object 가 Integer 인지 Short 인지 가르는 유일한 근거.

실측

픽스처 결과
LambdaBoxing 거부 → 3 (OpenJDK 26 동일)
LambdaBoxingKinds (신규) 4/42/7/obj:5/integer:6/npe in/cce/npe out — OpenJDK 26.0.2.1 과 줄 단위 일치
LambdaBoxingLong·LambdaUnboxingShort (신규) 거부 유지 (OpenJDK 는 실행)
기존 통과 시험 불변 green

변이 6종(인자/반환 박싱 제거 · instantiated 무시 · long 허용 · Integer 검사 제거 · 반환 언박싱 제거) 전부 red. verify-javac-fixtures.sh 33/33 재현.

DoD

fmt · clippy(stable/beta/wasm32) · cargo test --all · worklog/ledgers/dod-parity/exception-classes/merge-dropped 전부 rc0.

🤖 Generated with Claude Code

…feat: 람다 링커에 int↔Integer 어댑터 — 한 쌍만

jvm-bytecode/src/lambda.rs 의 통과 전용 술어를 위치별 계획(plan)으로 바꿨다.
통과는 종전 passes 를 먼저 묻고, 그 밖에는 int↔Integer 한 쌍만 삽입한다
(Integer.valueOf / Integer 검사 후 intValue · null → NPE · 다른 타입 → CCE).
언박싱 판정은 instantiatedMethodType 을 읽는다. LambdaCallSite 에 그 필드를 추가.

- LambdaBoxing: 거부 → 3 (OpenJDK 26 과 동일)
- LambdaBoxingKinds(신규): 위치 5 + 예외 3, OpenJDK 출력과 줄 단위 일치
- LambdaBoxingLong·LambdaUnboxingShort(신규): 여전히 거부
- 변이 6종 전부 red

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Jun025
Jun025 merged commit 253cd0e into main Sep 27, 2026
12 checks passed
@Jun025
Jun025 deleted the feat/lambda-boxing-adapter branch September 27, 2026 05:33
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