scala – 编译期间有关未处理类型类的警告
发布时间:2020-12-16 18:36:21 所属栏目:安全 来源:网络整理
导读:给出以下最小代码: package object MyPackage { case class Pimp(private val i: Int) extends AnyVal } SBT(0.13.8)抱怨: [warn] sbt-api: Unhandled type class scala.reflect.internal.Types$MethodType : ($this: myPackage.package.Pimp)Int 我的构建
给出以下最小代码:
package object MyPackage { case class Pimp(private val i: Int) extends AnyVal } SBT(0.13.8)抱怨: [warn] sbt-api: Unhandled type class scala.reflect.internal.Types$MethodType : ($this: myPackage.package.Pimp)Int 我的构建文件大致如下: Project("sbtissue",file("sbtissue")).settings(scalaVersion := "2.11.6") 将源文件中的相关行更改为: class Pimp(private val i: Int) extends AnyVal 要么: case class Pimp(i: Int) extends AnyVal 编译时不会发出警告. 相关:https://groups.google.com/forum/#!topic/simple-build-tool/KWdg4HfYqMk 解决方法
我认为你找到了一个合法的边缘案例,如果可能是一个小利基.
我建议删除私有,因为它不太适合case类的想法,而且,如果存在生成的unapply,它也不会隐藏该值: 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |