Здравствуйте, VladD2, Вы писали:
VD>https://github.com/dotnet/csharplang/discussions/9903
VD>Прошу поддержать лайком по ссылке (на гитхебе). Ну и приветствуются замечания и предложения.
В целом кажется это можно решить анализатором кода без изменения компилятора:
Тип SomeType должен быть отмечен неким атрибутом
Свойства/поля/параметры/возвращаемые значения методов так же, там где это необходимо, размечаются атрибутами, говорящими, что объекты/значения в них могут быть ещё только частично проинициализированны
Как только переменная типа SomeType покидает такой вот "частично проинициализированный" контекст (например возвращается из метода, возвращаемое значение которого атрибутом не размечено), анализатор может проверить, что тип полностью инициализирован.