Skip to content

Reject static abstract member invocations on F# interface types #19232

Merged
T-Gro merged 2 commits intomainfrom
fix/static-abstract-interface-19231
Jan 22, 2026
Merged

Reject static abstract member invocations on F# interface types #19232
T-Gro merged 2 commits intomainfrom
fix/static-abstract-interface-19231

Conversation

@T-Gro
Copy link
Member

@T-Gro T-Gro commented Jan 21, 2026

Fixes issue #19231

Extend the pattern match in ConstraintSolver.fs to also reject FSMeth when it represents a static abstract interface member being called directly on the interface type.

The check handles FSMeth case alongside ILMeth:

  • Not a constrained call via type parameter
  • Not an instance member (i.e., static)
  • Is on an interface type
  • Is a dispatch slot member (abstract)

…#19231)

Extend the pattern match in ConstraintSolver.fs to also reject FSMeth when
it represents a static abstract interface member being called directly on
the interface type.

The check handles FSMeth case alongside ILMeth:
- Not a constrained call via type parameter
- Not an instance member (i.e., static)
- Is on an interface type
- Is a dispatch slot member (abstract)

Uses the same error message 3866 (chkStaticAbstractInterfaceMembers).
@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

⚠️ Release notes required, but author opted out

Warning

Author opted out of release notes, check is disabled for this pull request.
cc @dotnet/fsharp-team-msft

@T-Gro T-Gro force-pushed the fix/static-abstract-interface-19231 branch from d3b0f97 to 0b150df Compare January 21, 2026 18:36
@T-Gro T-Gro marked this pull request as ready for review January 21, 2026 21:48
@T-Gro T-Gro requested a review from a team as a code owner January 21, 2026 21:48
@T-Gro T-Gro requested a review from abonie January 21, 2026 21:48
@github-project-automation github-project-automation bot moved this from New to In Progress in F# Compiler and Tooling Jan 22, 2026
@T-Gro T-Gro enabled auto-merge (squash) January 22, 2026 11:50
@T-Gro T-Gro added the NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes label Jan 22, 2026
@T-Gro T-Gro merged commit b1dc2f1 into main Jan 22, 2026
40 of 41 checks passed
@T-Gro T-Gro deleted the fix/static-abstract-interface-19231 branch February 17, 2026 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants