builder > A.scala B.scala compiling Set(A.scala, B.scala) Changes: Map() builder > A.scala compiling Set(A.scala) Changes: Map(object A -> List(Added(Definition(A.x)), Changed(Definition(A.x))[value x changed from (f: String, g: Int)Int to (f: String, g: Int)Int (f: Int, g: Int)Int flags: ])) invalidate B.scala because it references changed definition [Changed(Definition(A.x))[value x changed from (f: String, g: Int)Int to (f: String, g: Int)Int (f: Int, g: Int)Int flags: ]] compiling Set(B.scala) B.scala:2: error: type mismatch; found : Int(5) required: String val y = A.x(5) ^