Skip to content

C#: Support extension blocks#496

Merged
maciejpirog merged 2 commits intomainfrom
mpir/csharp-support-extension-blocks
Dec 17, 2025
Merged

C#: Support extension blocks#496
maciejpirog merged 2 commits intomainfrom
mpir/csharp-support-extension-blocks

Conversation

@maciejpirog
Copy link
Contributor

A C# 14 feature

E.g.

public static class MyGenericExtensions
{
    extension<T>(IEnumerable<T> source)
        where T : IEquatable<T>
    {
        public IEnumerable<T> ValuesEqualTo(T threshold)
            => source.Where(x => x.Equals(threshold));
    }
}

See https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods for more info

Copy link
Collaborator

@dimitris-m dimitris-m left a comment

Choose a reason for hiding this comment

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

Lgtm, reminder to merge the semgrep-c-sharp PR first and update the submodule here.

Copy link
Contributor

@corneliuhoffman corneliuhoffman left a comment

Choose a reason for hiding this comment

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

LGTM as well not that the first typo I have ever found in my life has been fixed :)))

@maciejpirog maciejpirog merged commit 8d7195c into main Dec 17, 2025
6 checks passed
@maciejpirog maciejpirog deleted the mpir/csharp-support-extension-blocks branch December 17, 2025 15:42
@maciejpirog maciejpirog mentioned this pull request Dec 17, 2025
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Dec 18, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [opengrep/opengrep](https://github.com/opengrep/opengrep) | minor | `v1.12.1` -> `v1.13.2` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>opengrep/opengrep (opengrep/opengrep)</summary>

### [`v1.13.2`](https://github.com/opengrep/opengrep/releases/tag/v1.13.2): Opengrep 1.13.2

[Compare Source](opengrep/opengrep@v1.13.1...v1.13.2)

#### Improvements

- C#: Add matching on function argument modifiers (ref, in, scoped, etc.) by [@&#8203;maciejpirog](https://github.com/maciejpirog) in [#&#8203;494](opengrep/opengrep#494)
- C#: Support extension blocks by [@&#8203;maciejpirog](https://github.com/maciejpirog) in [#&#8203;496](opengrep/opengrep#496)

#### Release process

- Validate tag input on release by [@&#8203;lae](https://github.com/lae) in [#&#8203;493](opengrep/opengrep#493)

**Full Changelog**: <opengrep/opengrep@v1.13.1...v1.13.2>

### [`v1.13.1`](https://github.com/opengrep/opengrep/releases/tag/v1.13.1): Opengrep 1.13.1

[Compare Source](opengrep/opengrep@v1.12.1...v1.13.1)

#### Improvements

- Improve handling of patterns and `AST_to_IL` translation by [@&#8203;dimitris-m](https://github.com/dimitris-m) in [#&#8203;483](opengrep/opengrep#483)
- Improve rust tainting by [@&#8203;dimitris-m](https://github.com/dimitris-m) in [#&#8203;485](opengrep/opengrep#485)
- Dump generic AST to HTML by [@&#8203;maciejpirog](https://github.com/maciejpirog) in [#&#8203;484](opengrep/opengrep#484)
- Modernise C# by [@&#8203;maciejpirog](https://github.com/maciejpirog) in [#&#8203;487](opengrep/opengrep#487)

#### Bug fixes

- Fix for kotlin double-annotation bug by [@&#8203;maciejpirog](https://github.com/maciejpirog) in [#&#8203;480](opengrep/opengrep#480)
- Fix PCRE2 test making OSX build fail by [@&#8203;dimitris-m](https://github.com/dimitris-m) in [#&#8203;486](opengrep/opengrep#486)
- Fix: in `LetPattern(pat, e)`, `e` should be visited first by [@&#8203;dimitris-m](https://github.com/dimitris-m) in [#&#8203;488](opengrep/opengrep#488)

#### CI fixes

- Force python 3.13 for osx binary workflow by [@&#8203;dimitris-m](https://github.com/dimitris-m) in [#&#8203;490](opengrep/opengrep#490)

##### Notes

- Version 1.13.0 ([#&#8203;489](opengrep/opengrep#489)) intentionally skipped due to CI errors, fixed in [#&#8203;490](opengrep/opengrep#490).

**Full Changelog**: <opengrep/opengrep@v1.12.1...v1.13.1>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41Ny4xIiwidXBkYXRlZEluVmVyIjoiNDIuNTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
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