为什么此代码会崩溃 Visual Studio 2015?

Why does this code crash Visual Studio 2015?

出于某种原因,即使在 Visual Studio 中将其输入到 C# 文件中也足以导致它立即崩溃。为什么?

unsafe struct node {
    node*[] child;
}

这似乎发生在 IDE 开始为关键字等着色时。

在 TIO 中尝试它会出现 csc.exe exited with code 1 这不是很有帮助。

虽然 C# 中的数组声明与 C/C++ 中的不同,但上面的 似乎 应该是完全有效的。为什么不是,为什么会崩溃 Visual Studio?

我的 Visual Studio 版本是 14.0.23107.

这是一个known bug in Roslyn。此错误会影响任何使用 Roslyn 的 Visual Studio 版本。

如果我对 VersionOf.net 的解释正确,第一个内置 Roslyn 的 Visual Studio 版本是 2015。在那之前,我 认为 它是仅作为扩展可用。因此,Visual Studio 2013 年及之前应该不受影响。

它将在 milestone 16 release 中得到修复。目前,该版本尚未安排。

因为这是 Roslyn 中的一个错误,您可以 "get around" 通过在早于 Roslyn 的旧版本 Visual Studio 中编辑和编译包含 unsafe struct 的代码来解决它。 Visual Studio 2012 应该可以。然后,您可以在当前软件中使用生成的 .DLL。

如果您从 this branch. The fix was made in this commit 自己构建 Roslyn,则可以使用未经验证的修复。