Почему этот код аварийно завершает работу Visual Studio 2015?


по какой-то причине даже столько, сколько набрав это в файл C# в Visual Studio, достаточно, чтобы вызвать его мгновенный сбой. Зачем?

unsafe struct node {
    node*[] child;
}

Кажется, это происходит, когда IDE начнет раскрашивать ключевые слова и тому подобное.

пробуя его в Тио выплевывает csc.exe exited with code 1 что не очень полезно.

в то время как объявления массива в C# отличаются от C/C++, выше кажется как это должно быть совершенно справедливо. Почему это не так, и почему он рушится Visual Studio?

моя версия Visual Studio-14.0.23107.

1 55

1 ответ:

Это известная ошибка в Roslyn. Эта ошибка повлияет на любую версию Visual Studio, которая использует Roslyn.

если я интерпретирую VersionOf.net Правильно, первая версия Visual Studio со встроенным Roslyn-это 2015 год. До этого я думаю он был доступен только в качестве дополнения. Таким образом, Visual Studio 2013 и ранее не должны быть затронуты.

Это должно быть исправлено в релиз milestone 16. При этом время, что релиз не планируется.

потому что это ошибка в Roslyn, вы можете "обойти" его путем редактирования и компиляции кода, содержащего unsafe struct в более старой версии Visual Studio, которая предшествует Roslyn. Visual Studio 2012 должен работать. Затем вы можете использовать полученный .DLL в вашем текущем программном обеспечении.

непроверенное исправление доступно, если вы сами создаете Roslyn из эта ветка. Исправление было сделано в этот коммит.