2013-07-17 5 views
5

Ich habe diese kleine scala Beispiel:scala warnen nicht über nicht verwendete Berechnung oder Wert

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)) 
    } 
} 

Ich glaube, dass scala sollte über ‚z‘ warnen und die ‚x Spiel ...‘ ungenutzt ist. Ich habe keine Compiler-Optionen bemerkt, um weitere Warnungen zu aktivieren. Ich benutze scala 2.10.1.

Gedanken? Vielen Dank!

+3

Dies ist ein vollständig gültiger Scala-Code, wie vom Compiler angegeben. Nicht verwendete variable Warnungen sind normalerweise etwas, das ein Quellcodeanalysator finden und warnen würde. Für einen ähnlichen Code zeigt der 'java' Compiler keine Warnung an. – Brian

+0

@Brian Ich bin mir nicht sicher, ob Javac der Maßstab ist. Die 3 Hochwähler sagen, ich brauche keine stinkende Art Sicherheit! Ich schneide Scalac etwas locker auf das Spiel, es versucht immer noch die Vollständigkeit zu nageln. Es kann beim Verwerfen von Werten für Einheit warnen, was darauf hinweist, dass es warnen würde, wenn es warnen könnte. –

+0

Versuchen Sie, die Compileroption '" -Ywarn-value-discard "hinzuzufügen. –

Antwort

8

Wie Sie sehen können here, werden "unbenutzte" Warnungen in der nächsten Version von scala, 2.11 eingeführt.

warnen nicht verwendete private/lokale Bedingungen und Typen und nicht verwendete Importe, unter -Xlint

Sie sie versuchen können, den letzten Meilenstein verwenden.

+0

In 2.11: -Ywarn-unbenutzt Warnen, wenn lokale und private Werte, Variablen, Definitionen und Typen nicht verwendet werden – nedim

Verwandte Themen