Skip to content

swaldman/abstract-method-error-if-in-separate-module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Dotty bug?

AbstractMethodError, but only if the application is compiled separately from library

Please see the this Scala/Dotty issue.

This issue appears under Scala 3.3.6 and 3.7.0, with mill as well as sbt.

This repository is an sbt project. It compiles just fine, but if you try to run the test program...

> Test / run

an AbstractMethodError results:

[info] compiling 1 Scala source to /Users/swaldman/Documents/BaseFolders/development/playpen/inheritance-of-nested-traits-sbt/target/scala-3.3.6/classes ...
[info] compiling 1 Scala source to /Users/swaldman/Documents/BaseFolders/development/playpen/inheritance-of-nested-traits-sbt/target/scala-3.3.6/test-classes ...
[info] running logadapter.test.Test 
Exception in thread "sbt-bg-threads-1" java.lang.AbstractMethodError: Receiver class logadapter.test.Test$ does not define or inherit an implementation of the resolved method 'abstract logadapter.AbstractApi logadapter$AbstractApi$SelfLogging$$$outer()' of interface logadapter.AbstractApi$SelfLogging.
	at logadapter.AbstractApi$SelfLogging.adapter(core.scala:9)
	at logadapter.AbstractApi$SelfLogging.adapter$(core.scala:8)
	at logadapter.test.Test$.adapter$lzyINIT1(core.scala:3)
	at logadapter.test.Test$.adapter(core.scala:3)
	at logadapter.test.Test$.main(core.scala:5)
	at logadapter.test.Test.main(core.scala)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at sbt.Run.invokeMain(Run.scala:135)
	at sbt.Run.execute$1(Run.scala:85)
	at sbt.Run.$anonfun$runWithLoader$5(Run.scala:112)
	at sbt.Run$.executeSuccess(Run.scala:178)
	at sbt.Run.runWithLoader(Run.scala:112)
	at sbt.Defaults$.$anonfun$bgRunTask$6(Defaults.scala:2072)
	at sbt.Defaults$.$anonfun$termWrapper$2(Defaults.scala:2011)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at scala.util.Try$.apply(Try.scala:213)
	at sbt.internal.BackgroundThreadPool$BackgroundRunnable.run(DefaultBackgroundJobService.scala:378)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
[success] Total time: 2 s, completed May 22, 2025, 11:30:46 PM

If you go to the root of the repository, and try:

$ mv src/test/scala/logadapter/test src/main/scala/logadapter

Then the program works fine:

> run
[info] running logadapter.test.Test 
INFO [logadapter.test.Test$] Hello
[success] Total time: 0 s, completed May 22, 2025, 11:33:37 PM

Move it back...

$ mv src/main/scala/logadapter/test src/test/scala/logadapter

...and it is broken again.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages