2010-09-18 12 views
5

A veces obtengo una coincidencia de patrones molestos y sangrado de advertencias al compilar F #. ¿Hay alguna forma de desactivar las advertencias? Soy bastante TOC sobre las advertencias.F # Suprimir advertencias

+0

resolver Tal vez las advertencias? :) – ChaosPandion

+1

Tendría mucho cuidado al cerrar las advertencias de coincidencia de patrones. Y teniendo en cuenta que la sintaxis de F # puede usar sangrías para determinar el alcance, no solo ignoraría esas advertencias, trataría de comprenderlas. –

+2

¿Hay alguna manera de hacerlo por instancia? Algunas veces tengo casos que saben cosas que el compilador no sabe, por ejemplo, la cantidad de grupos que producirá una coincidencia de expresiones regulares. – gatoatigrado

Respuesta

7

En caso de que olvide, puede escribir

let rec x = lazy(x.Value) 

y obtener el aviso

Ésta y otras recursivas referencias a el objeto (s) se definirá será comprobado por la solidez de la inicialización en tiempo de ejecución mediante el uso de una referencia diferida . Esto se debe a que está definiendo uno o más objetos recursivos , en lugar de funciones recursivas . Esta advertencia puede ser suprimida usando '#nowarn' 40 '' o '--nowarn: 40'.

lo que demuestra que se puede utilizar ya sea la bandera del compilador --nowarn en la línea de comandos, o usar el hash directiva #nowarn en el código. El número de advertencia para cada advertencia formará parte de la salida de compilación (la lista de errores de Visual Studio no muestra los números, de modo que si está en VS, compile y luego inspeccione la salida de compilación). Además, si está dentro de VS, puede ir a la página de propiedades del proyecto, pestaña "Crear", y usar el selector "nivel de advertencia" y el campo "suprimir advertencias" (una lista de números delimitada por punto y coma) para controlar qué advertencias se muestran la interfaz de usuario de VS.

(Por cierto, creo #nowarn solamente se apaga la advertencia en el archivo actual, mientras que --nowarn lo desactiva para todo el proyecto en fase de archivo.)

+0

Buena respuesta Brian –

2

Ver: Compiler Options (F#)

--nowarn:<int-list>:

advertencias específicas Desactivar listados por número. Separe cada número de advertencia con una coma. Puede descubrir el número de advertencia para cualquier advertencia de el resultado de la compilación.

Esta opción del compilador es equivalente a la opción del compilador C# del mismo nombre . Para obtener más información, consulte /nowarn (C# Compiler Options).

Cuestiones relacionadas