2015-04-18 18 views
5

otrzymuje następujące minimalne Kod:Ostrzeżenie o nieobsługiwany typ klasy podczas kompilacji

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

SBT (0.13.8) narzeka:

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

Mój plik build jest mniej więcej tak:

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

Zmiana odpowiedniej linii w pliku źródłowym na:

class Pimp(private val i: Int) extends AnyVal 

czyli

case class Pimp(i: Int) extends AnyVal 

nie zgłasza ostrzeżenie przy kompilacji. Co mogę zrobić, aby zapobiec temu ostrzeżeniu?

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

Odpowiedz

3

Chyba znalazłem uzasadniony przypadek krawędzi, jeśli trochę nisza może.

Polecam upuszczenie private gdyż tak naprawdę nie pasuje do idei klasy sprawy, a także, ze względu na istnienie generowanego Wycofywanie, nie ukrywa, że ​​wartość tak czy inaczej:

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 
Powiązane problemy