У нас есть функция, преобразующая вещи типа Int32.TryParse
из использования byref в использование Option для возвращаемого значения.
let inline ToOptionFunc refFunction x =
match refFunction x with
| true, value -> Some value
| false, _ -> None
Такие вещи перестали компилироваться в .NET Core с новыми перегрузками в TryParse:
let Int32TryParse (x:string) =
ToOptionFunc Int32.TryParse x // A unique overload for method 'TryParse' could not be determined (...)
Я перепробовал много вещей и случайно запустил его, написав так:
let Int32TryParse (x:string) =
x |> ToOptionFunc Int32.TryParse
Я просто не понимаю, почему это компилируется, а первое - нет.