An inline SRTP call from Aether 8.3.1 that works with SDK 10.0.303 compiles but throws at runtime with SDK 10.0.400, including optimized Release builds.
Repro steps
- Extract the attached project: fsharp-aether-srtp-repro.zip
- Run
dotnet run -c Release.
- Change
global.json to SDK 10.0.303 and repeat for comparison.
Expected behavior
The program should output:
Actual behavior
With SDK 10.0.400:
Unhandled exception. System.NotSupportedException:
Dynamic invocation of op_HatEquals is not supported
at Aether.Optic.set[a,b,c](a optic, b value)
SDK 10.0.303 produces the expected output.
Known workarounds
- Pin the SDK to 10.0.303.
- Rebuilding the unmodified Aether 8.3.1 source with SDK 10.0.303 also makes the SDK 10.0.400 consumer pass.
--always-inline+ does not fix the failing Release call.
Related information
An inline SRTP call from Aether 8.3.1 that works with SDK 10.0.303 compiles but throws at runtime with SDK 10.0.400, including optimized Release builds.
Repro steps
dotnet run -c Release.global.jsonto SDK 10.0.303 and repeat for comparison.Expected behavior
The program should output:
Actual behavior
With SDK 10.0.400:
SDK 10.0.303 produces the expected output.
Known workarounds
--always-inline+does not fix the failing Release call.Related information
14fbf8d527