2011-07-04 8 views
5

¿Es posible suprimir esta advertencia específica mediante @SuppressWarnings(???)? (No tengo la intención de utilizar esta conversión como una vista obligado, por lo que la advertencia no es útil.)Supresión "métodos implícitos parametrizados sobrecargados no son visibles como visualizar los límites" de advertencia en Scala

+0

Como @ Jean-Philippe señaló que es un posible duplicado de [esta pregunta] (http://stackoverflow.com/questions/3506370/is-there-an-equivalent-to-suppresswarnings-in-scala) –

Respuesta

6
Desafortunadamente no

. El compilador ignora @SuppressWarnings. También vea this question.

+0

Gracias . Demasiado... –

1

Aunque no se puede suprimir esta advertencia a través @SuppressWarnings, sólo tiene que cambiar el nombre de una de las sobrecargas que el compilador está advirtiendo. Si no desea cambiar el nombre porque también se le llama especifique lo contrario, hacer que el método no implícita y añadir otro (con otro nombre) conversión implícita que reenvía a la primera.

En otras palabras, hay que girar con el ejemplo siguiente:

class MyClass 
object MyClass { 
    implicit def myConv: MyClass = error("TODO") 
    implicit def myConv[X](value: X): MyClass = error("TODO") 
} 

en esto:

class MyClass 
object MyClass { 
    implicit def myConv: MyClass = error("TODO") 
    def myConv[X](value: X): MyClass = error("TODO") // made it non implicit 
    implicit def myConv2[X](value: X): MyClass = myConv(value) // renamed so that it is not an overload anymore 
} 

Tenga en cuenta que la advertencia sólo se emite en 2.9.x Scala, es por defecto no emite más en Scala 2,10 (pero el problema real que la advertencia está hablando todavía está allí - el mensaje de advertencia sólo se ha eliminado porque se consideró demasiado ruidoso con el nuevo aumento en el uso de la clase de tipo).

Cuestiones relacionadas