Skip to content

fix(go): preserve references in interface conversions - #345

Merged
akonwi merged 1 commit into
mainfrom
fix/344-any-reference-conversion
Jul 27, 2026
Merged

fix(go): preserve references in interface conversions#345
akonwi merged 1 commit into
mainfrom
fix/344-any-reference-conversion

Conversation

@akonwi

@akonwi akonwi commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Context

What's changed

  • Generalize checker and AIR interface-conversion metadata across Any and named Go interfaces.
  • Preserve existing mutable-reference identity at runtime interface destinations while retaining value snapshots for ordinary Go generic T parameters.
  • Preserve ownership through nullable interface conversion and Maybe<mut T> inference, specialization, and extraction.
  • Add checker, AIR, and runtime regressions covering calls, fields, assignments, returns, Maybe, json.Unmarshal, named empty interfaces, and generic countercases.
  • Accept ADR 0056, amend superseded ADR 0039/0045 rules, and update Go interop documentation.

Validation

  • cd compiler && go test ./... -count=1
  • cd website && npm run build
  • Downstream checks/builds and 171 tests across Dram, Decode, SQL, Migrate, Maestro, and Tinear
  • git diff --check
  • Final code review: no material findings

@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ard-lang-dev Ready Ready Preview, Comment Jul 27, 2026 10:45am

@akonwi
akonwi merged commit 84e976b into main Jul 27, 2026
6 checks passed
@akonwi
akonwi deleted the fix/344-any-reference-conversion branch July 27, 2026 10:54
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.

Generic mut parameter is dereferenced when passed to Go any

1 participant