¿Por qué este código bloquea Visual Studio 2015?


Por alguna razón, incluso escribir esto en un archivo C# en Visual Studio es suficiente para causar que se bloquee instantáneamente. ¿Por qué?

unsafe struct node {
    node*[] child;
}

Parece ocurrir cuando el IDE comenzaría a colorear palabras clave y similares.

Intentarlo en TIO escupe csc.exe exited with code 1 lo cual no es muy útil.

Mientras que las declaraciones de matriz en C# son diferentes a las de C/C++, lo anterior parece como si fuera perfectamente válido. ¿Por qué no lo es, y por qué se bloquea Visual Studio?

Mi La versión de Visual Studio es 14.0.23107.

Author: Amy, 2018-08-07

1 answers

Este es un error conocido en Roslyn. Este error afectará a cualquier versión de Visual Studio que use Roslyn.

Si estoy interpretando VersionOf.net correctamente, la primera versión de Visual Studio con Roslyn incorporada es 2015. Antes de eso, yo creo que estaba disponible solo como una extensión. Por lo tanto, Visual Studio 2013 y anterior no deben verse afectados.

Está previsto que se fije en el lanzamiento de milestone 16. En este momento, esa liberación no es programar.

Debido a que este es un error en Roslyn, puede "sortearlo" editando y compilando el código que contiene el unsafe struct en una versión anterior de Visual Studio, una anterior a Roslyn. Visual Studio 2012 debería funcionar. A continuación, puede utilizar la resultante .DLL en su software actual.

Una corrección no verificada está disponible si construye Roslyn usted mismo desde esta rama. La corrección se hizo en este commit.

 47
Author: Amy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-07 20:08:44