Skip to content

Conversation

WojciechMazur
Copy link
Contributor

Backports #23899 to the 3.7.4.

PR submitted by the release tooling.
[skip ci]

@WojciechMazur
Copy link
Contributor Author

This change causes TASTy MiMa failure
@hamzaremmal @sjrd It does not seem to be a regular problem (based on TastyFormatException) that we can handle with TastyMimaFilters rules. Any idea how to resolve that?

[error] tastyquery.Exceptions$TastyFormatException: unexpected type ThisType(TypeRef(PackageRef(scala.collection), symbol[class collection.BuildFrom])) for Ident name self at out/bootstrap/scala2-library-bootstrapped/scala-3.7.4-RC1-bin-SNAPSHOT-nonbootstrapped/src_managed/main/scala-library-src/scala/collection/BuildFrom.scala:[1676..1680] in at address Addr(422) in file /Users/wmazur/projects/scala/scala3/scala2-library-bootstrapped/../out/bootstrap/scala2-library-bootstrapped/scala-3.7.4-RC1-bin-SNAPSHOT-nonbootstrapped/classes/scala/collection/BuildFrom.class
[error]         at tastyquery.reader.tasties.TreeUnpickler.makeIdent(TreeUnpickler.scala:815)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:910)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:895)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:970)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:895)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:915)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:895)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:915)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:895)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadValOrDefDef(TreeUnpickler.scala:760)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readValOrDefDef(TreeUnpickler.scala:745)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadStat(TreeUnpickler.scala:523)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStat(TreeUnpickler.scala:468)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStats$$anonfun$1(TreeUnpickler.scala:465)
[error]         at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:137)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStats(TreeUnpickler.scala:465)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTemplate(TreeUnpickler.scala:702)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadStat(TreeUnpickler.scala:507)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStat(TreeUnpickler.scala:468)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStats$$anonfun$1(TreeUnpickler.scala:465)
[error]         at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:137)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStats(TreeUnpickler.scala:465)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:1010)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:895)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadValOrDefDef(TreeUnpickler.scala:760)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readValOrDefDef(TreeUnpickler.scala:745)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadStat(TreeUnpickler.scala:523)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStat(TreeUnpickler.scala:468)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStats$$anonfun$1(TreeUnpickler.scala:465)
[error]         at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:137)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStats(TreeUnpickler.scala:465)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTemplate(TreeUnpickler.scala:702)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadStat(TreeUnpickler.scala:507)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readStat(TreeUnpickler.scala:468)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat(TreeUnpickler.scala:461)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTopLevelStat(TreeUnpickler.scala:449)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat$$anonfun$1(TreeUnpickler.scala:460)
[error]         at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:137)
[error]         at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat(TreeUnpickler.scala:460)
[error]         at tastyquery.reader.tasties.TreeUnpickler.readTopLevelStat(TreeUnpickler.scala:449)
[error]         at tastyquery.reader.tasties.TreeUnpickler.read$1(TreeUnpickler.scala:50)
[error]         at tastyquery.reader.tasties.TreeUnpickler.unpickle(TreeUnpickler.scala:55)
[error]         at tastyquery.reader.Loaders$PackageLoadingInfo.doLoadTasty(Loaders.scala:156)
[error]         at tastyquery.reader.Loaders$PackageLoadingInfo.tryLoadRoot(Loaders.scala:87)
[error]         at tastyquery.reader.Loaders$PackageLoadingInfo.loadOneRoot$$anonfun$1(Loaders.scala:65)
[error]         at tastyquery.reader.Loaders$PackageLoadingInfo.loadingRoots(Loaders.scala:71)
[error]         at tastyquery.reader.Loaders$PackageLoadingInfo.loadOneRoot(Loaders.scala:65)
[error]         at tastyquery.reader.Loaders$Loader.loadRoot(Loaders.scala:226)
[error]         at tastyquery.Symbols$PackageSymbol.getDecl$$anonfun$3$$anonfun$1(Symbols.scala:1910)
[error]         at tastyquery.Symbols$PackageSymbol.loadingNewRoots(Symbols.scala:1896)
[error]         at tastyquery.Symbols$PackageSymbol.getDecl$$anonfun$3(Symbols.scala:1910)
[error]         at scala.Option.orElse(Option.scala:477)
[error]         at tastyquery.Symbols$PackageSymbol.getDecl(Symbols.scala:1912)
[error]         at tastyquery.reader.Loaders$Loader.lookup$1(Loaders.scala:235)
[error]         at tastyquery.reader.Loaders$Loader.lookupRoots$1$$anonfun$1(Loaders.scala:238)
[error]         at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error]         at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error]         at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1321)
[error]         at scala.IArray$package$IArray$.foreach(IArray.scala:123)
[error]         at tastyquery.reader.Loaders$Loader.lookupRoots$1(Loaders.scala:240)
[error]         at tastyquery.reader.Loaders$Loader.computeLookup$1$$anonfun$1(Loaders.scala:245)
[error]         at scala.collection.Iterator$$anon$10.nextCur(Iterator.scala:594)
[error]         at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:608)
[error]         at scala.collection.immutable.List.prependedAll(List.scala:155)
[error]         at scala.collection.IterableOnceOps.toList(IterableOnce.scala:1288)
[error]         at scala.collection.IterableOnceOps.toList$(IterableOnce.scala:1288)
[error]         at scala.collection.AbstractIterable.toList(Iterable.scala:933)
[error]         at tastymima.TastyMiMa.analyze(TastyMiMa.scala:23)
[error]         at tastymima.TastyMiMa.analyze(TastyMiMa.scala:50)
[error]         at tastymima.TastyMiMa.analyze(TastyMiMa.scala:62)
[error]         at sbttastymima.TastyMiMaPlugin$.$anonfun$analyzeAndReport$1(TastyMiMaPlugin.scala:208)
[error]         at sbttastymima.TastyMiMaPlugin$.$anonfun$analyzeAndReport$1$adapted(TastyMiMaPlugin.scala:203)
[error]         at scala.collection.immutable.List.foreach(List.scala:431)
[error]         at sbttastymima.TastyMiMaPlugin$.analyzeAndReport(TastyMiMaPlugin.scala:203)
[error]         at sbttastymima.TastyMiMaPlugin$.$anonfun$projectSettings$19(TastyMiMaPlugin.scala:185)
[error]         at sbttastymima.TastyMiMaPlugin$.$anonfun$projectSettings$19$adapted(TastyMiMaPlugin.scala:174)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error]         at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error]         at sbt.Execute.work(Execute.scala:292)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error]         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[error]         at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[error]         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[error]         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[error]         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[error]         at java.base/java.lang.Thread.run(Thread.java:1583)
[error] (scala2-library-bootstrapped / tastyMiMaReportIssues) tastyquery.Exceptions$TastyFormatException: unexpected type ThisType(TypeRef(PackageRef(scala.collection), symbol[class collection.BuildFrom])) for Ident name self at out/bootstrap/scala2-library-bootstrapped/scala-3.7.4-RC1-bin-SNAPSHOT-nonbootstrapped/src_managed/main/scala-library-src/scala/collection/BuildFrom.scala:[1676..1680] in at address Addr(422) in file /Users/wmazur/projects/scala/scala3/scala2-library-bootstrapped/../out/bootstrap/scala2-library-bootstrapped/scala-3.7.4-RC1-bin-SNAPSHOT-nonbootstrapped/classes/scala/collection/BuildFrom.class

@hamzaremmal
Copy link
Member

hamzaremmal commented Sep 21, 2025

This change causes TASTy MiMa failure @hamzaremmal @sjrd It does not seem to be a regular problem (based on TastyFormatException) that we can handle with TastyMimaFilters rules. Any idea how to resolve that?

I imagine tasty-query will have to adapt to the fact that Ident can have a ThisType now.

@hamzaremmal
Copy link
Member

hamzaremmal commented Sep 21, 2025

Also, maybe this should not be backported since it relaxes and allows more trees in TASTy.

@WojciechMazur
Copy link
Contributor Author

I've checked with latest tasty-query / tasty-mima versions and it's still present.
I'll move this backport out of the current backport queue until we'll decide if it should be backported into 3.7. This change in theory is backward compatible since we don't modify format, but rather emit new, previously valid combinations, that tasty-query could have not been aware of... for me it's somewhere in the gray zone of binary compatibility.

@hamzaremmal
Copy link
Member

note that for compiling the non-bootstrapped stdlib, we need this fix in the reference compiler.

Base automatically changed from release-3.7.4_backport-23844 to release-3.7.4 September 22, 2025 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants