CSHARPPROGLIB Telegram 6537
🛠 Строгая проверка назначения атрибутов в F# 10

В F# 10 компилятор стал жёстко проверять, что атрибуты применяются только к тем конструкциям, для которых они предназначены. Это касается функций, значений, объединений, конструкторов, структур, классов и других элементов.

Раньше F# позволял неявно применять атрибуты к неподходящим целям без предупреждений. Из-за этого возникали баги, например:

• Тестовые атрибуты не работали, если функция не имела (), и тесты не запускались

• Атрибуты-анализаторы иногда игнорировались, приводя к сбоям в CI без очевидной причины.

Пример такого кода, который никак не работал:
[<Fact>]
let ``this is not a function`` = // никак не запускался тест
Assert.True(false)


Теперь компилятор выдаёт предупреждение при неверном применении атрибутов:
[<Fact>]
//^^^^ предупреждение FS0842: атрибут нельзя применять к свойству, полю и т.п.
let ``works correctly`` =
Assert.True(true)


Атрибуты должны применяться только к совместимым элементам, например, к методам.

🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸Библиотека шарписта

#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰2🌚2👍1



tgoop.com/csharpproglib/6537
Create:
Last Update:

🛠 Строгая проверка назначения атрибутов в F# 10

В F# 10 компилятор стал жёстко проверять, что атрибуты применяются только к тем конструкциям, для которых они предназначены. Это касается функций, значений, объединений, конструкторов, структур, классов и других элементов.

Раньше F# позволял неявно применять атрибуты к неподходящим целям без предупреждений. Из-за этого возникали баги, например:

• Тестовые атрибуты не работали, если функция не имела (), и тесты не запускались

• Атрибуты-анализаторы иногда игнорировались, приводя к сбоям в CI без очевидной причины.

Пример такого кода, который никак не работал:

[<Fact>]
let ``this is not a function`` = // никак не запускался тест
Assert.True(false)


Теперь компилятор выдаёт предупреждение при неверном применении атрибутов:
[<Fact>]
//^^^^ предупреждение FS0842: атрибут нельзя применять к свойству, полю и т.п.
let ``works correctly`` =
Assert.True(true)


Атрибуты должны применяться только к совместимым элементам, например, к методам.

🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🐸Библиотека шарписта

#sharp_view

BY Библиотека шарписта | C#, F#, .NET, ASP.NET


Share with your friend now:
tgoop.com/csharpproglib/6537

View MORE
Open in Telegram


Telegram News

Date: |

To upload a logo, click the Menu icon and select “Manage Channel.” In a new window, hit the Camera icon. End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. How to create a business channel on Telegram? (Tutorial) How to create a business channel on Telegram? (Tutorial) bank east asia october 20 kowloon
from us


Telegram Библиотека шарписта | C#, F#, .NET, ASP.NET
FROM American