Size: a a a

F# Flood: Be a cheif

2021 January 29

R

Roman in F# Flood: Be a cheif
Ayrat Hudaygulov
я просто чот не думал что кто-то жсоном опенапи описывает
у меня любопытный кейс: я беру чужой сваггер.жсон чтобы сделать стаб для тестов
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
речь оригинально шла про боксинг структур в using (которого нет), а потом перешла на компилятор
Которого нет - потому что в компиляторе специальная затычка для этого конкретного случая using + структура сделан, чтобы генерить не box + callvirt, а constrained + callvirt

О чём тут и говорили
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Которого нет - потому что в компиляторе специальная затычка для этого конкретного случая using + структура сделан, чтобы генерить не box + callvirt, а constrained + callvirt

О чём тут и говорили
это тоже хак?
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
и это?
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
Roman
у меня любопытный кейс: я беру чужой сваггер.жсон чтобы сделать стаб для тестов
я ща проверю, но чот кажется что должно работать
источник

DS

Doge Shibu in F# Flood: Be a cheif
А где тут каст?
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
https://github.com/microsoft/OpenAPI.NET
вот эта хуита говорит что ямлы и жсоны парсит. и ей пофигу, она строку и стрим в одном и том же апи жрет
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
и это?
Речь про хак в конкретном случае: cast структуры в интерфейс и вызов метода на ней
источник

DS

Doge Shibu in F# Flood: Be a cheif
Мы говорим только про этот случай
источник

R

Roman in F# Flood: Be a cheif
Ayrat Hudaygulov
я ща проверю, но чот кажется что должно работать
generated.fs надо физически создать же? И если да, он должен быть пустой или похуй?
источник

AH

Ayrat Hudaygulov in F# Flood: Be a cheif
Roman
generated.fs надо физически создать же? И если да, он должен быть пустой или похуй?
не, ничего не надо
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Речь про хак в конкретном случае: cast структуры в интерфейс и вызов метода на ней
это не хак, так вызываются ВСЕ полиморфные методы у структур
источник

R

Roman in F# Flood: Be a cheif
Ayrat Hudaygulov
не, ничего не надо
просто в файл проекта добавить хмл из примера?
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
в том числе GetHashCode и ToString
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
в том числе GetHashCode и ToString
Оно причём тут?

Мы говорим про случай с кастом. Причём тут случаи без каста в интерфейс?
источник

DS

Doge Shibu in F# Flood: Be a cheif
Конкретно про код вида: ((IMyInterface)myStruct).MyMethod()
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Оно причём тут?

Мы говорим про случай с кастом. Причём тут случаи без каста в интерфейс?
давай сыграем в 3 вопроса)
источник

DS

Doge Shibu in F# Flood: Be a cheif
Любой другой код к этому спору отношение не имеет
источник

IC

Ilya Chernoudov in F# Flood: Be a cheif
Doge Shibu
Оно причём тут?

Мы говорим про случай с кастом. Причём тут случаи без каста в интерфейс?
1. где ты нашел, что должен быть каст в реализации using + IDidsposable?
источник

DS

Doge Shibu in F# Flood: Be a cheif
Ilya Chernoudov
1. где ты нашел, что должен быть каст в реализации using + IDidsposable?
Так написано в спеке:
            // SPEC: When ResourceType is a non-nullable value type, the expansion is:
           // SPEC:
           // SPEC: {
           // SPEC:   ResourceType resource = expr;
           // SPEC:   try { statement; }
           // SPEC:   finally { ((IDisposable)resource).Dispose(); }
           // SPEC: }
           // SPEC:
источник