Skip to content

Complete the managed .NET interop analyzer boundary - #1339

Merged
nickna merged 1 commit into
mainfrom
feat/aot-compile-time-interop-boundary
Jul 31, 2026
Merged

Complete the managed .NET interop analyzer boundary#1339
nickna merged 1 commit into
mainfrom
feat/aot-compile-time-interop-boundary

Conversation

@nickna

@nickna nickna commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

  • route compile-time external IL emission, declaration inspection, extension imports, external type synthesis, and arbitrary CLR attribute discovery through the guarded managed interop boundary
  • preserve full BCL, embedder, and third-party assembly support in the Managed SKU
  • keep the closed Obsolete, Serializable, and NonSerialized mappings rooted and usable by the Native compiler while rejecting arbitrary open-world attribute discovery there
  • reduce the structured project analyzer baseline from 48 warnings to an empty inventory
  • add a Native AOT smoke test for the rooted known-attribute contract and update the AOT plan and measurements

Validation

  • AOT analyzer ratchet: 0 warnings, exact baseline match (down from 48)
  • managed test suite: 16,262 passed
  • focused interop suites: 203 passed
  • decorator attribute suite after the closed-constructor correction: 6 passed
  • Native win-arm64 smoke: known attribute output true; main output 42; feature output 2 2 33; arbitrary dynamic .NET interop rejected with the managed-build diagnostic
  • Native image: 93,376,000 bytes, 18,432 bytes (0.0197%) smaller than merged main

The zero baseline covers SDK project analyzers. Full Native AOT publish can still emit separate ILCompiler and dependency diagnostics; the plan now calls out that distinction explicitly.

@nickna
nickna merged commit e05f9fe into main Jul 31, 2026
4 checks passed
@nickna
nickna deleted the feat/aot-compile-time-interop-boundary branch August 5, 2026 18:11
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