netstandard2.0, the SDK injects polyfills for modern C# features. The polyfill source files are maintained in ANcpLua.Roslyn.Utilities as the single source of truth.
| Feature | What it enables |
|---|---|
Index / Range | array[^1], array[1..3] syntax |
IsExternalInit | record types and init properties |
| Nullability attributes | [NotNull], [MaybeNull], etc. |
TimeProvider | Testable time abstraction |
Lock | System.Threading.Lock polyfill |
| Trim/AOT attributes | [RequiresUnreferencedCode], etc. |
| String extensions | string.Contains(StringComparison) |
Opt-out Control
All polyfills are enabled by default. Disable individual categories or all at once:Polyfills are only injected for
netstandard2.0 / netstandard2.1 targets.
.NET 10 projects donโt need them.