Skip to content

Fix piped methods with named parameters#329

Merged
ppolesiuk merged 2 commits intofram-lang:masterfrom
AlanPietrasz:fix/262-piped-method-named-params
Mar 23, 2026
Merged

Fix piped methods with named parameters#329
ppolesiuk merged 2 commits intofram-lang:masterfrom
AlanPietrasz:fix/262-piped-method-named-params

Conversation

@AlanPietrasz
Copy link
Contributor

#262
Fixed desugaring of piped method calls with named parameters.
A >.foo {x=A} used to fail, because EMethodCall did not handle leading record arguments the same way as EApp.
Added a regression test for this case.

Copy link
Member

@ppolesiuk ppolesiuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thanks!

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes desugaring for piped method calls that use leading record arguments to pass named parameters (e.g., A >.foo {x=A}), aligning EMethodCall handling with the existing EApp behavior and adding a regression test for Issue #262.

Changes:

  • Refactors application desugaring into a shared helper (tr_apply) that properly collects leading record fields as explicit instantiations.
  • Updates EMethodCall desugaring to use the same named-parameter/instantiation path as EApp.
  • Adds a new test/ok regression test covering piped method calls with named parameters.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/DblParser/Desugar.ml Introduces tr_apply and routes both EApp and EMethodCall through it so leading record args are treated as explicit instantiations consistently.
test/ok/ok0153_pipedMethodNamedParam.fram Adds a compile-only regression test reproducing A >.foo {x=A}.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ppolesiuk ppolesiuk merged commit 677b9a1 into fram-lang:master Mar 23, 2026
5 checks passed
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.

3 participants