Skip to content

Annotate JasperFx.Events event-core cluster for AOT (#262, slice 3/4)#266

Merged
jeremydmiller merged 1 commit into
mainfrom
feature/aot-events-eventcore-262
May 13, 2026
Merged

Annotate JasperFx.Events event-core cluster for AOT (#262, slice 3/4)#266
jeremydmiller merged 1 commit into
mainfrom
feature/aot-events-eventcore-262

Conversation

@jeremydmiller
Copy link
Copy Markdown
Member

Summary

Third slice of #262, covering the smaller reflective surfaces in the event-core: IEvent, EventSlice<TDoc,TId>, StreamAction, TagTypeRegistration, and Internals/MethodCollection.

These types reflect on TId / aggregate identity types via ValueTypeInfo to discover strong-typed-id shape and build wrap/unwrap delegates with FastExpressionCompiler. The id and event types are preserved at the registration boundary on the caller side.

Applied class-level [UnconditionalSuppressMessage]:

File Codes
EventSlice<TDoc, TId> IL2026/IL2087 (ValueTypeInfo.ForType + UnWrapper for TId)
IEvent IL2026/IL2087 (CreateAggregateIdentitySource<TId>)
StreamAction IL2026/IL2087 (ValueTypeInfo for aggregate ids)
Tags/TagTypeRegistration (static factory + generic) IL2026/IL2087/IL3050
Internals/MethodCollection IL2070 (reflective PublicMethods discovery)

Warning delta

JasperFx.Events.csproj IL warnings on this branch: 240 → 206 (-34).

Slicing plan (from #262)

Test plan

  • `dotnet build src/JasperFx.Events/JasperFx.Events.csproj -c Debug` — 0 errors, -34 IL warnings
  • `dotnet build src/EventTests/EventTests.csproj -c Debug` — 0 errors
  • CI passes

Refs #262 #213

🤖 Generated with Claude Code

Third slice of #262, covering the smaller reflective surfaces in the
event-core: IEvent, EventSlice<TDoc,TId>, StreamAction, TagTypeRegistration,
and Internals/MethodCollection. These types reflect on TId / aggregate
identity types via ValueTypeInfo to discover strong-typed-id shape and
build wrap/unwrap delegates with FastExpressionCompiler. The id and event
types are preserved at the registration boundary on the caller side.

Apply class-level [UnconditionalSuppressMessage] with justifications:
- EventSlice: IL2026/IL2087 (ValueTypeInfo.ForType + UnWrapper for TId)
- IEvent: IL2026/IL2087 (CreateAggregateIdentitySource<TId>)
- StreamAction: IL2026/IL2087 (ValueTypeInfo for aggregate ids)
- Tags/TagTypeRegistration (static factory + generic): IL2026/IL2087/IL3050
- Internals/MethodCollection: IL2070 (reflective PublicMethods discovery)

240 → 206 unique IL warnings (-34) in JasperFx.Events.csproj.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant