Skip to content

SDK 10.0.400 regression: cross-assembly inline SRTP call throws in Release #20253

Description

@cmeeren

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

  1. Extract the attached project: fsharp-aether-srtp-repro.zip
  2. Run dotnet run -c Release.
  3. Change global.json to SDK 10.0.303 and repeat for comparison.

Expected behavior

The program should output:

{ Value = 1 }

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    Status
    New

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions