2015-04-18 14 views
5

Với mã số tối thiểu sau đây:Cảnh báo về lớp loại unhandled trong biên soạn

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

SBT (0.13.8) than phiền:

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

xây dựng tập tin của tôi là loại như thế này:

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

Thay đổi dòng có liên quan trong tệp nguồn thành:

class Pimp(private val i: Int) extends AnyVal 

hay:

case class Pimp(i: Int) extends AnyVal 

tăng không cảnh báo khi biên dịch. Tôi có thể làm gì để ngăn chặn cảnh báo này?

liên quan: https://groups.google.com/forum/#!topic/simple-build-tool/KWdg4HfYqMk

Trả lời

3

Tôi nghĩ rằng bạn đã tìm thấy một trường hợp cạnh hợp pháp, nếu một chút thích hợp có thể.

Tôi muốn giới thiệu thả private như nó không thực sự phù hợp với ý tưởng của một lớp trường hợp, và cũng có thể, vì sự tồn tại của một tạo unapply, nó không che giấu giá trị mà anyways:

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 
Các vấn đề liên quan