You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sbt version: 1.3.4 (and 1.3.3)
but sbt 1.2.8 works as expected
(scala 2.12.8)
problem
Files with nested types whose combined names are longer than a certain limit are seen as always needing recompilation by sbt (invalidated). For me, -Xmax-classfile-name=80 gives a limit of 65 characters: at or beyond that my test file always gets recompiled.
package foo
object ABCD45678901234567890123456789012345678901234567890123456789 {
class ABCD
}
object Test {
val _ = new ABCD45678901234567890123456789012345678901234567890123456789.ABCD
// ^^^^^^^^^^^^^^^^^^^^^^ 65 characters long ^^^^^^^^^^^^^^^^^^^^^^^
}
expectation
When unchanged, the file should not be recompiled no matter how long the type names inside. This was the behaviour under sbt 1.2.8
notes
Transcript
MB19090:LengthLimit peter.robinson$ cat project/build.properties
sbt.version=1.3.4
MB19090:LengthLimit peter.robinson$ cat LengthTest.scala
package foo
object ABCD45678901234567890123456789012345678901234567890123456789 {
class ABCD
}
object Test {
val _ = new ABCD45678901234567890123456789012345678901234567890123456789.ABCD
// ^^^^^^^^^^^^^^^^^^^^^^ 65 characters long ^^^^^^^^^^^^^^^^^^^^^^^
}
MB19090:LengthLimit peter.robinson$ cat build.sbt
scalaVersion := "2.12.8"
scalacOptions ++= Seq("-Xmax-classfile-name", "80")
MB19090:LengthLimit peter.robinson$ sbt
[info] Loading settings for project global-plugins from idea.sbt ...
[info] Loading global plugins from /Users/peter.robinson/.sbt/1.0/plugins
[info] Loading project definition from /private/tmp/LengthLimit/project
[info] Loading settings for project lengthlimit from build.sbt ...
[info] Set current project to lengthlimit (in build file:/private/tmp/LengthLimit/)
[info] sbt server started at local:///Users/peter.robinson/.sbt/1.0/server/b778c582df5d59e42bb9/sock
sbt:lengthlimit> compile
[info] Compiling 1 Scala source to /private/tmp/LengthLimit/target/scala-2.12/classes ...
[success] Total time: 3 s, completed 10-Dec-2019 13:03:32
sbt:lengthlimit> compile
[info] Compiling 1 Scala source to /private/tmp/LengthLimit/target/scala-2.12/classes ...
[success] Total time: 0 s, completed 10-Dec-2019 13:03:35
sbt:lengthlimit>
The text was updated successfully, but these errors were encountered:
I can also reproduce the problem (with an even longer name) without setting -Xmax-classfile-name at all, including under scala 2.13 where that's not an option. Again it's a problem for sbt 1.3.4 but not for 1.2.8.
steps
sbt version: 1.3.4 (and 1.3.3)
but sbt 1.2.8 works as expected
(scala 2.12.8)
problem
Files with nested types whose combined names are longer than a certain limit are seen as always needing recompilation by sbt (invalidated). For me,
-Xmax-classfile-name=80
gives a limit of 65 characters: at or beyond that my test file always gets recompiled.expectation
When unchanged, the file should not be recompiled no matter how long the type names inside. This was the behaviour under sbt 1.2.8
notes
Transcript
The text was updated successfully, but these errors were encountered: