2015-04-18 5 views
5

die folgenden minimalen Code Bei Warnung:über Klasse nicht behandelte Typ während der Kompilierung

package object MyPackage { 
    case class Pimp(private val i: Int) extends AnyVal 
} 

SBT (0.13.8) klagt:

[warn] sbt-api: Unhandled type class scala.reflect.internal.Types$MethodType : ($this: myPackage.package.Pimp)Int 

Meine Build-Datei ist in etwa so:

Project("sbtissue", file("sbtissue")).settings(scalaVersion := "2.11.6") 

Ändern der relevanten Zeile in der Quelldatei zu:

class Pimp(private val i: Int) extends AnyVal 

oder:

case class Pimp(i: Int) extends AnyVal 

erhebt keine Warnung beim Kompilieren. Was kann ich tun, um diese Warnung zu vermeiden?

Verwandte: https://groups.google.com/forum/#!topic/simple-build-tool/KWdg4HfYqMk

Antwort

3

Ich glaube, Sie einen berechtigten Rand Fall gefunden haben, wenn eine kleine Nische vielleicht.

würde ich empfehlen, die private fallen, da es nicht wirklich mit der Idee einer Fallklasse passt, und auch angesichts der Existenz eines Unapply erzeugt, ist es nicht diesen Wert verstecken sowieso:

Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> case class Pimp(private val i: Int) extends AnyVal 
defined class Pimp 

scala> val p1 = Pimp(1) 
p1: Pimp = Pimp(1) 

scala> p1.i 
<console>:11: error: value i is not a member of Pimp 
       p1.i 
       ^

scala> val Pimp(n) = p1 
n: Int = 1 
Verwandte Themen