While working on FSharp.Data, I noticed that comparing a UoM abbreviation type with a IJsonDocument type causes an infinite recursion/loop.
Repro steps
On FSharp.Data, I triggered this with the JsonProvider and an inline schema containing an abbreviated UoM:
type InlineSchemas = JsonProvider<""" {"a": "typeof<int<m>>"} """, InferenceMode=InferenceMode.ValuesAndInlineSchemasOverrides>
Note the lack of full syntactic colorization, since the IDE is caught in the loop.
Known workarounds
Replacing m with metre works: no infinite loop.
EDIT: ah it seems I was just lucky to pick one that was not in the list!
After completing the list in this PR https://github.com/fsprojects/FSharp.TypeProviders.SDK/pull/394, metre is now considered as a FSharpTypeAbbreviation, and the equality check loops the same way as with m! :/
Related information
I tried updating the github commit of the SDK referenced by FSharp.Data, but the problem still exists.
I'm not sure how to fix it, but in case it helps, here are a few screenshots of the looping methods:
Description
While working on FSharp.Data, I noticed that comparing a UoM abbreviation type with a IJsonDocument type causes an infinite recursion/loop.
Repro steps
On FSharp.Data, I triggered this with the JsonProvider and an inline schema containing an abbreviated UoM:
Note the lack of full syntactic colorization, since the IDE is caught in the loop.
Known workarounds
Replacing
m
withmetre
works: no infinite loop.EDIT: ah it seems I was just lucky to pick one that was not in the list!
After completing the list in this PR https://github.com/fsprojects/FSharp.TypeProviders.SDK/pull/394,
metre
is now considered as aFSharpTypeAbbreviation
, and the equality check loops the same way as withm
! :/Related information
I tried updating the github commit of the SDK referenced by FSharp.Data, but the problem still exists.
I'm not sure how to fix it, but in case it helps, here are a few screenshots of the looping methods:
And back to square one: