Intellij Idea不识别Scala类中的可变字段,给出';重新分配给val';错误

Intellij Idea不识别Scala类中的可变字段,给出';重新分配给val';错误,scala,intellij-idea,compiler-errors,compilation,sbt,Scala,Intellij Idea,Compiler Errors,Compilation,Sbt,我有一个带有一些变量字段的Scala类,我们称它为: class A extends AParent { var x: String = _ ... } 其中AParent也有一些字段: abstract class AParent { var id: Long = _ ... } 当我尝试使用类A来设置字段x上的值时,我得到重新分配到valerror。为什么x是var时会发生这种情况?! 可能重要的一条信息是A类及其父类位于单独的项目中,通过SBT导入 有趣

我有一个带有一些变量字段的Scala类,我们称它为:

class A extends AParent {
    var x: String = _
    ...
}
其中AParent也有一些字段:

abstract class AParent {
    var id: Long = _
    ...
}
当我尝试使用类A来设置字段x上的值时,我得到
重新分配到val
error。为什么x是var时会发生这种情况?! 可能重要的一条信息是A类及其父类位于单独的项目中,通过SBT导入

有趣的是,对于AParent类的任何字段,我都没有得到相同的“错误”。仅适用于直接属于A类的字段

此外,当我从命令行运行
sbt clean compile
时,一切正常,没有编译错误。 另外,当我回到Idea并运行应用程序时,它运行得很好,做了它应该做的事情,没有任何错误或警告

老实说,在我看来,这似乎是个想法错误,但到目前为止,我还没有遇到过类似的经历

创意版本:

IntelliJ IDEA 2018.1.3 (Ultimate Edition)
Build #IU-181.4892.42, built on May 8, 2018
...
JRE: 1.8.0_152-release-1136-b38 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.4

我在Intellij上试过了。我需要做的唯一更改是
var
s的默认初始化,如:

class A extends AParent {
  var x: String = _
  def setId(newId: Long) {
    id = newId
  }
}

abstract class AParent {
  var id: Long = _
}

object Appl extends App {
  val a = new A()
  a.setId(234)
  println(a.id)
}

如果你认为这个IntelliJ bug为什么要在这里报道?在我报告之前,我正在寻找类似的经历。我不想匆忙报道任何我觉得奇怪的事情。感谢分享充满理解和接受的文化。使用sbt编译而不使用IntelliJ时有什么问题吗?没有。sbt编译得很好。谢谢回答。我的代码中有,但我没有帮助。我没有在问题中介绍它,所以我现在将更新它。我刚刚检查了Intellij 2018.1.1/1.8.0_152-release-1136-b27 x86_64-其他所有内容都是相同的。似乎只有在一个项目(通过sbt作为库导入)和另一个项目中时才会出现错误。我将A移到使用它的项目中,编译器错误消失了。