Skip to content

Forwarding keyword merge - #474

Merged
mame merged 2 commits into
masterfrom
forwarding-keyword-merge
Sep 1, 2026
Merged

Forwarding keyword merge#474
mame merged 2 commits into
masterfrom
forwarding-keyword-merge

Conversation

@mame

@mame mame commented Sep 1, 2026

Copy link
Copy Markdown
Member

No description provided.

mame added 2 commits September 1, 2026 18:27
Follow-up to #434.

`build_keyword_args` dropped an optional keyword whose vertex was empty, but it
runs during install, when every vertex is still empty and no dependency edge is
registered, so the keyword was never forwarded at all. The reject was there to
keep the named keywords out of the `**rest` hash; do that in a box instead,
which also keeps the rest's own fields.

    class B
      def foo(a, b: 1) = [a, b]
    end
    class C < B
      def foo(a, b: 2) = super
    end
    C.new.foo(1, b: "s")   # B#foo's b: Integer -> Integer | String
Follow-up to #434.

`bar(*, ...)` is a syntax error, so a forwarding call site never has an
anonymous rest to install, and the branch still tested for `DummyNilNode`, which
ff8a516 replaced with `nil`.
@mame
mame enabled auto-merge (rebase) September 1, 2026 09:27
@mame
mame merged commit 0fbb42b into master Sep 1, 2026
12 checks passed
@mame
mame deleted the forwarding-keyword-merge branch September 1, 2026 09:28
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