Skip to content

refactor: treat predicates as boolean functions - #663

Merged
Seddryck merged 2 commits into
next-majorfrom
feat/boolean-function-pipelines
Aug 27, 2026
Merged

refactor: treat predicates as boolean functions#663
Seddryck merged 2 commits into
next-majorfrom
feat/boolean-function-pipelines

Conversation

@Seddryck

@Seddryck Seddryck commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • model a single predication as one function and represent predicate pipelines explicitly
  • resolve predicate members through the ordinary function pipeline, with strict Boolean validation only at predicate boundaries
  • make AND, OR, and XOR shorthand bind to the same Boolean combinator functions used by their canonical forms
  • support standalone and filter-contained transformation pipelines ending in predicates
  • preserve relative record context in parenthesized map-shorthand arguments

Built on top of #661.

Validation

  • solution build across net8.0, net9.0, and net10.0
  • 215 focused tests on each target framework (645 total)
  • 206 CLI tests
  • complete nested customer/order projection using |> shorthand
  • pre-push StyleCop check

Close #662
Close #668

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d58b2aee-f1c1-4a9b-87b9-90ef97d983eb

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 77.77778% with 20 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.39%. Comparing base (b064c0c) to head (ad29df2).
⚠️ Report is 2 commits behind head on next-major.

Files with missing lines Patch % Lines
Expressif/Predicates/Boolean/BooleanCombinators.cs 80.00% 6 Missing and 1 partial ⚠️
Expressif/Functions/FunctionFactory.cs 75.00% 3 Missing and 2 partials ⚠️
Expressif/Serializers/PredicationSerializer.cs 0.00% 3 Missing ⚠️
Expressif/Predicates/BooleanFunctionPredicate.cs 77.77% 1 Missing and 1 partial ⚠️
Expressif.Cli/Commands/BoundTreeFormatter.cs 50.00% 1 Missing ⚠️
Expressif/Bindings/ExpressifBinder.cs 92.30% 0 Missing and 1 partial ⚠️
Expressif/Predicates/PredicationFactory.cs 80.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@              Coverage Diff               @@
##           next-major     #663      +/-   ##
==============================================
- Coverage       84.45%   84.39%   -0.07%     
==============================================
  Files             220      221       +1     
  Lines            6259     6273      +14     
  Branches         1111     1111              
==============================================
+ Hits             5286     5294       +8     
- Misses            643      650       +7     
+ Partials          330      329       -1     
Flag Coverage Δ
expressif-cli-net10.0 40.06% <44.44%> (-0.77%) ⬇️
expressif-net10.0 81.52% <78.40%> (+0.04%) ⬆️
expressif-net8.0 81.52% <78.40%> (+0.04%) ⬆️
expressif-net9.0 81.52% <78.40%> (+0.04%) ⬆️

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.

@Seddryck
Seddryck force-pushed the feat/boolean-function-pipelines branch 2 times, most recently from f68da0d to 4e0c4c4 Compare August 26, 2026 23:44
@Seddryck
Seddryck force-pushed the feat/boolean-function-pipelines branch from 4e0c4c4 to ad29df2 Compare August 27, 2026 08:37
@sonarqubecloud

Copy link
Copy Markdown

@Seddryck
Seddryck merged commit 6c5c91b into next-major Aug 27, 2026
17 of 18 checks passed
@Seddryck
Seddryck deleted the feat/boolean-function-pipelines branch August 27, 2026 10:09
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.

Parenthesized map shorthand should preserve record context Treat predicates as Boolean-returning functions in expression pipelines

1 participant