-
Notifications
You must be signed in to change notification settings - Fork 854
Open
Copy link
Labels
Area-Compiler-CodeGenIlxGen, ilwrite and things at the backendIlxGen, ilwrite and things at the backendBugImpact-Low(Internal MS Team use only) Describes an issue with limited impact on existing code.(Internal MS Team use only) Describes an issue with limited impact on existing code.
Milestone
Description
Hi,
I am getting a strange TypeLoadException in my code when I am trying to create a delegate that contains a voidptr, but only when I return it.
System.TypeLoadException: 'The generic type 'Microsoft.FSharp.Core.FSharpFunc`2' was used with an invalid instantiation in assembly 'FSharp.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.'
I am not sure if it's bug report, as I am probably doing something wrong - I am just really confused why the code compiles but blows up at runtime.
Repro steps
- Declare or reference a delegate that takes a voidptr parameter
- Create a function that returns that delegate
- Try to use that function
type MyDelegate = delegate of voidptr -> unit
let method ptr = ()
[<Fact>]
let test_runtime_kaboom () =
let getDelegate method = MyDelegate(method)
()I have also attached an example project that reproduces that behavior below.
Expected behavior
I would expect that the call works without throwing an exception, because:
- the code compiles without any error or warning
- creating the delegate actually works, it's only when a function is declared that returns it, is when the problem occurs.
- changing the signature of the delegate from voidptr to any other type works as well
Actual behavior
A typeload exception is thrown.
System.TypeLoadException: 'The generic type 'Microsoft.FSharp.Core.FSharpFunc`2' was used with an invalid instantiation in assembly 'FSharp.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.'
Known workarounds
None, except for creating and using the delegate instantly.
Related information
- Operating system - Win 10 Version 20H2 OS Build 19042.804
- .NET Runtime kind + .NET Core
- Editing Tools - Visual Studio TestExplorer, nCrunch / JetBrains Rider / dotnet test
Take care,
Martin
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area-Compiler-CodeGenIlxGen, ilwrite and things at the backendIlxGen, ilwrite and things at the backendBugImpact-Low(Internal MS Team use only) Describes an issue with limited impact on existing code.(Internal MS Team use only) Describes an issue with limited impact on existing code.
Type
Projects
Status
New