2013-07-17 11 views
5

inutilizzato ho questa piccola premessa Scala:Scala non mettere in guardia circa il calcolo o il valore

object Test { 
    def add(x: Int, y: Int) = { 
    val z = x - y 
    x match { 
     case 0 => 0 - y 
     case 1 => 1 - y 
     case _ => x - y 
    } 
    x + y 
    } 

    def main(args: Array[String]) { 
    println(add(5, 6)) 
    } 
} 

sento che scala dovrebbe mettere in guardia circa 'z' e 'x match ...' essere inutilizzato. Non ho notato nessuna opzione del compilatore per attivare più avvisi. Sto usando scala 2.10.1.

Pensieri? Grazie!

+3

Questo è un codice scala perfettamente valido come indicato dal compilatore. Gli avvertimenti variabili non utilizzati sono in genere qualcosa che un analizzatore di codice sorgente potrebbe trovare e mettere in guardia. Per un pezzo di codice simile, il compilatore 'java' non mostra neanche un avvertimento. – Brian

+0

@Brian Non sono sicuro che javac sia il punto di riferimento. I 3 upvoters dicono, non ho bisogno di nessuna sicurezza di tipo puzzolente! Ho tagliato lo scalac un po 'lento sul match, sta ancora cercando di inchiodare esaustivamente. Può avvisare di aver scartato i valori per Unità, il che suggerisce che avvertirebbe se potrebbe avvisare. –

+0

Prova ad aggiungere l'opzione del compilatore '' -Ywarn-value-discard "'. –

risposta

8

Come si può vedere here, gli avvisi "inutilizzati" verranno introdotti nella prossima versione di scala, 2.11.

mettere in guardia sui termini utilizzati private/locali e tipi, e le importazioni non utilizzati, sotto -Xlint

Si può provare a utilizzare l'ultimo traguardo.

+0

In 2.11: '-Ywarn-inutilizzato Avvisa quando vals, vars, defs e tipi locali e privati ​​sono inutilizzati. – nedim

Problemi correlati