Набор Fsharp, кажется, тихо ломается - PullRequest
1 голос
/ 28 мая 2020

У меня есть этот простой код:

let httpSuccessCodes =
  Set.ofSeq [HttpStatusCode.OK; HttpStatusCode.NoContent]

let httpSuccess (httpSuccessCode:HttpStatusCode) =
  Console.WriteLine("{0}", httpSuccessCode)
  httpSuccessCodes.Contains httpSuccessCode

При вызове этого кода просто тихо выйдите из приложения, без ошибок:

let isSuccess = httpSuccess stauscode

Забавно, что он работает в fsharpi. Я не уверен, почему он ломается.

Update1:

Код, который работает:

 let task = amazonS3client.GetACLAsync(getBucketAclRequest)
 task.Wait()
 let success = isHttpSuccess task.Result.HttpStatusCode
 if task.IsCompletedSuccessfully && success then
   Console.WriteLine("getBucketAcl finished successfully for bucket {0}", bucket)
   Some task.Result.AccessControlList
 else
   Console.Error.WriteLine("Could not get bucket acl: {0}", bucket)
   None   

Update2:

if ((Set.ofSeq [ HttpStatusCode.OK; HttpStatusCode.NoContent; ]).Contains task.Result.HttpStatusCode) then
  Console.WriteLine("1")

if (httpSuccessCodes.Contains task.Result.HttpStatusCode) then
  Console.WriteLine("2")

if (isHttpSuccess task.Result.HttpStatusCode) then
  Console.WriteLine("3")

Вывод: 1

1 Ответ

0 голосов
/ 28 мая 2020

По какой-то странной причине имеет значение, в каком модуле живет код проверки статуса http. Я перемещал его в отдельный модуль, и теперь он работает.

...