Skip to content

Comments

[co-maintainer] Expose ofAsyncEnum/toAsyncEnum on netstandard2.0#214

Closed
github-actions[bot] wants to merge 2 commits intomainfrom
fix/ofasyncenum-netstandard20-027c65259e7c7a65
Closed

[co-maintainer] Expose ofAsyncEnum/toAsyncEnum on netstandard2.0#214
github-actions[bot] wants to merge 2 commits intomainfrom
fix/ofasyncenum-netstandard20-027c65259e7c7a65

Conversation

@github-actions
Copy link
Contributor

Closes #173

Root cause

The .fsi signature file had ofAsyncEnum, toAsyncEnum, and ofIQueryable gated behind #if (NETSTANDARD2_1 || NETCOREAPP3_0), but the .fs implementation already guarded them with #if (NETSTANDARD || NET) — which includes netstandard2.0. Because the .fsi controls what's visible in the public API, these functions were invisible on netstandard2.0 even though the implementation was compiled for that target.

Fix

One-line change to AsyncSeq.fsi: replace

#if (NETSTANDARD2_1 || NETCOREAPP3_0)

with

#if (NETSTANDARD || NET)

This aligns the signature with the implementation.

Why it's safe

The project already takes a dependency on Microsoft.Bcl.AsyncInterfaces (v5.0), which provides System.Collections.Generic.IAsyncEnumerable(T) for netstandard2.0. So the BCL type is available and no new dependencies are needed.

Trade-offs

None identified. The change is purely additive — it exposes an already-compiled API surface to an additional target framework.

⚠️ Build could not be verified locally due to network restrictions in the CI environment (NuGet restore blocked). The logic of the change is straightforward and has been manually verified against the source.

Generated by Repo Co-Maintainer

Warning

⚠️ Firewall blocked 2 domains

The following domains were blocked by the firewall during workflow execution:

  • api.nuget.org
  • dc.services.visualstudio.com

The .fsi signature file was gating ofAsyncEnum, toAsyncEnum, and
ofIQueryable behind NETSTANDARD2_1 || NETCOREAPP3_0, while the .fs
implementation already guarded them with NETSTANDARD || NET (which
includes netstandard2.0). Since the project already depends on
Microsoft.Bcl.AsyncInterfaces which provides IAsyncEnumerable<T> for
netstandard2.0, aligning the .fsi guard makes these functions available
on that target framework.

Closes #173

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dsyme
Copy link
Contributor

dsyme commented Feb 20, 2026

Closing as tests were not run. Let's try again

@dsyme dsyme closed this Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant