Skip to content

fix(array): evaluate map-over values against pipeline input - #984

Open
Seddryck wants to merge 1 commit into
mainfrom
fix/map-over-values-context
Open

fix(array): evaluate map-over values against pipeline input#984
Seddryck wants to merge 1 commit into
mainfrom
fix/map-over-values-context

Conversation

@Seddryck

@Seddryck Seddryck commented Sep 7, 2026

Copy link
Copy Markdown
Owner

map-over now evaluates its second argument once against the value piped into the function. Nested contact projections can use .contact | map-over(field, field-names) without repeating .contact inside the argument.

Pass the incoming value directly to the values evaluator while preserving public constructors, scalar/tuple broadcasting, and existing map-with behavior. Add conformance coverage for nested records, changed inputs, explicit enclosing-scope access, and empty/invalid selections, plus repeated-evaluation and provider invocation tests. Update metadata and the function reference with an executable contact example.

Validation:

  • Full solution build: no warnings or errors.
  • Final directional mapping and map-over documentation tests: 22/22 passed on each of .NET 8, 9, and 10.
  • Full library sweep completed on all three frameworks; its two new-test failures per framework were corrected and passed in the final rerun. One existing serialization test is skipped per framework.
  • Commitlint and StyleCop pre-push hooks passed.

close #983

@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 22dcc7a3-9e42-42b7-b2d8-1fa4eaaf791a


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the bug Something isn't working label Sep 7, 2026
@sonarqubecloud

sonarqubecloud Bot commented Sep 7, 2026

Copy link
Copy Markdown

@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.50000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 86.15%. Comparing base (0493eeb) to head (75a90a9).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
Expressif/Functions/FunctionFactory.cs 66.66% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #984      +/-   ##
==========================================
+ Coverage   86.11%   86.15%   +0.04%     
==========================================
  Files         290      290              
  Lines        8945     8966      +21     
  Branches     1655     1658       +3     
==========================================
+ Hits         7703     7725      +22     
+ Misses        792      791       -1     
  Partials      450      450              
Flag Coverage Δ
expressif-cli-net10.0 33.23% <0.00%> (-0.05%) ⬇️
expressif-net10.0 84.84% <87.50%> (+0.05%) ⬆️
expressif-net8.0 84.84% <87.50%> (+0.05%) ⬆️
expressif-net9.0 84.84% <87.50%> (+0.05%) ⬆️
expressif-serialization-net10.0 4.41% <0.00%> (-0.02%) ⬇️
expressif-serialization-net8.0 4.41% <0.00%> (-0.02%) ⬇️
expressif-serialization-net9.0 4.41% <0.00%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Map-over should evaluate its second argument against its pipeline input

1 participant