Ayrat
Но я думаю это не было сделано потому, что это не распространено
Anatoly
use!?
Что, прямо так и писать, с !? ?
Ilya
я просто предположил
Ayrat
Валидный
Ilya
Валидный
логично!
Igor
но такой код не компилится: use! stream = File.OpenWrite "data.json"
gsomix
@omgszer А DisposeAsync поддерживается?
Igor
его ведь недавно добавили, скорее всего еще не поддержано
Ayrat
@omgszer А DisposeAsync поддерживается?
Нет, а с чего бы? Его нет в IDisposable
Ayrat
Я удивлен что Илья удивлен
gsomix
@omgszer Разве речь не про это была? https://github.com/fsharp/fslang-suggestions/issues/866
Ilya
@aensidhe нас наобманули, не работает use! https://github.com/fsharp/fslang-suggestions/issues/866
gsomix
@aensidhe нас наобманули, не работает use! https://github.com/fsharp/fslang-suggestions/issues/866
Работает, просто он асинхронно биндит, но не диспоузит.
Ayrat
@omgszer Разве речь не про это была? https://github.com/fsharp/fslang-suggestions/issues/866
Да, но ее добавить ручками можно через перегрузку
Ayrat
У нас же билдеры расширяются
Ayrat
Ну вот поэтому я и говорю что изи фикс
gsomix
У @ilchert сложилось впечатление, что просто использовать use! достаточно.
gsomix
И у меня тоже! Но я полез проверять.
Ayrat
покажи кот!
Ну я ща детей раскидаю и покажу
Ayrat
Или кто-то ещё покажет
Ayrat
Я даже думаю что можно без интерфейса на перегрузке сртп
Ayrat
Это уже интереснее. На интерфейсе слишком просто
Vasily
Чо хотят-то?
Igor
DisposeAsync()
Ilya
Чо хотят-то?
Use! Не завезли
Ayrat
Ayrat
Но он делает другое Это using Abc = await foo
Ayrat
То есть Task<IDisposable>
Ilya
Завезли
Я про восклицательный знак после use
Ayrat
И он делает
Ayrat
Но он делает другое Это using Abc = await foo
Ilya
Ну его и завезли
А, то есть он делает не то что ожидается?
Ayrat
Всю жизнь так работало!
Ayrat
Зависит от ожиданий.
Не, там однозначно не может быть других ожиданий
gsomix
Да, но ее добавить ручками можно через перегрузку
Я почитал комментарии к предложению. Похоже, правильно сделать не так просто.
Ayrat
В сишарпе для этого новый синтаксис ввели
Ayrat
await using
Ayrat
Там в общем такое норма await using var foo = await abc
Ilya
Там в общем такое норма await using var foo = await abc
вроде всё понятно и без приседаний
Ilya
Вот так лучше. await using (var foo = await abc().ConfigureAwait(false))
Ilya
ещё await foreach!
Ilya
а с этим как в F#?
Ilya
Ilya
Приглашается любитель AsyncSeq @grishace
gsomix
а с этим как в F#?
AsyncSeq.ofAsyncEnum — и вперед!
Igor
ещё await foreach!
собственно этим c# и плохо, что под каждую фичу приходится в язык добавлять новый синтаксис
Ilya
AsyncSeq.ofAsyncEnum — и вперед!
это что то кастомное или с IAsyncEnumerable работает?
George
а с этим как в F#?
AsyncSeq.iter/iterAsync
Vasily
Всё в фшарпе есть
Vasily
И им даже удобнее пользоваться
Ayrat
а с этим как в F#?
Гораздо гораздо гораздо лучше
gsomix
это что то кастомное или с IAsyncEnumerable работает?
Это функция из библиотеки AsyncSeq, которая позволяет создавать асинхронные последовательности из IAsyncEnumerable.
gsomix
F# же не виноват, что у него это библиотечное решение, которое появилось раньше IAsyncEnumerable.
George
кто то ещё страдает с configure await?
фшарперы не страдают, фшарперы пишут open FSharp.Control.Tasks.V2.ContextInsensitive и везде в таскбилдерах будет ConfigureAwait(false). Ну или ContextSensitive и true
Ilya
Я бы не стал верить на слово людям, которые говорят, что не страдают.
Ilya
Это хорошее уточнение.
Ayrat
У нас кстати весь код этим конфигур евейтом обмазан
Ayrat
Сверху донизу
Ilya
Зато явно. Не надо смотреть в файле на пару тысяч строк, какой же open прописан.
Vasily
Редкостная говнина на самом деле
Vasily
В целом, при постах Ильи у меня обычно напрашивается пост картинки про мальчика со ртом, измазанным шоколадом(предположительно)
Ayrat
Зато явно. Не надо смотреть в файле на пару тысяч строк, какой же open прописан.
Эт всё же обычно проектное решение, но если ты в одном файле дрочишь контекст и ноу-контекст, то алиас на билдер или не полный опен
Ayrat
это для ииса)
А ты думал на чём ажура крутится