Skip to content

Restructure IR channel emitter into Sender/Listener interfaces#679

Merged
wilmveel merged 2 commits into
masterfrom
claude/zen-heisenberg-f3wex1
Jun 19, 2026
Merged

Restructure IR channel emitter into Sender/Listener interfaces#679
wilmveel merged 2 commits into
masterfrom
claude/zen-heisenberg-f3wex1

Conversation

@wilmveel

Copy link
Copy Markdown
Contributor

Change the channel converter to emit an object/namespace named after the
channel that implements Wirespec.Channel and contains two nested
interfaces: a Sender with a send method taking the message, and a
Listener with a method taking a callback handler for the message.

The Java emitter's channel transform is updated accordingly: the
@FunctionalInterface wrapping (which assumed a single top-level
interface) is dropped, and reference qualification for the
name-collision case now covers all custom types in the nested
interfaces, including the Listener's function-type handler parameter.

Regenerated channel fixtures for all six target languages.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_015SorifLsgVZF7pcKV2Zn5g

claude added 2 commits June 19, 2026 19:20
Change the channel converter to emit an object/namespace named after the
channel that implements Wirespec.Channel and contains two nested
interfaces: a Sender with a send method taking the message, and a
Listener with a method taking a callback handler for the message.

The Java emitter's channel transform is updated accordingly: the
@FunctionalInterface wrapping (which assumed a single top-level
interface) is dropped, and reference qualification for the
name-collision case now covers all custom types in the nested
interfaces, including the Listener's function-type handler parameter.

Regenerated channel fixtures for all six target languages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015SorifLsgVZF7pcKV2Zn5g
Interfaces with a single non-generic abstract method (and no abstract
properties) are now emitted as functional (fun) interfaces in the Kotlin
generator. Generic abstract methods are excluded because a lambda cannot
satisfy a generic SAM.

Regenerated affected Kotlin fixtures (channel Sender/Listener, endpoint
Call, and the shared Wirespec Shape/Transportation interfaces).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015SorifLsgVZF7pcKV2Zn5g
@wilmveel wilmveel merged commit e5e898e into master Jun 19, 2026
34 checks passed
@wilmveel wilmveel deleted the claude/zen-heisenberg-f3wex1 branch June 19, 2026 20:00
@sonarqubecloud

Copy link
Copy Markdown

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.

2 participants