I'm not 100% sure if this is an issue with tasty-query or with the standard library itself, but I figured I'd post here first. Let me know if you think I should open an issue at https://github.com/scala/scala3 as well @sjrd.
If you take the following code and save it in a file:
//> using scala 3.8.2
//> using dep ch.epfl.scala::tasty-query:1.7.0
//> using dep io.get-coursier:coursier_2.13:2.1.24
import coursier.{Fetch, Repositories}
import coursier.core.{Dependency, Module, ModuleName, Organization}
import java.net.URI
import java.nio.file.{Files, FileSystems, Paths}
import scala.jdk.CollectionConverters.*
import tastyquery.Contexts.Context
import tastyquery.jdk.ClasspathLoaders
@main
def test = {
val scalaLibraryDep = Dependency(Module(Organization("org.scala-lang"), ModuleName("scala-library"), Map()), "3.8.2")
val scalaLibraryFiles = Fetch().withRepositories(Seq(Repositories.central)).addDependencies(scalaLibraryDep).run()
val javaModules = Files.list(FileSystems.getFileSystem(URI.create("jrt:/")).getPath("modules")).iterator.asScala.toList
val ctx = Context.initialize(ClasspathLoaders.read(javaModules ++ scalaLibraryFiles.map(_.toPath)))
println(ctx.findStaticType("scala.collection.immutable.Map"))
}
Then run it with scala-cli:
scala-cli /path/to/the/file.scala
You'll see an error:
Exception in thread "main" tastyquery.Exceptions$TastyFormatException: Unexpected term tag TYPEREF at address Addr(1211) in file /Users/matt/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/3.8.2/scala-library-3.8.2.jar:scala/collection/immutable/Map.class
at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:1178)
at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:922)
at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:1172)
at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:922)
at tastyquery.reader.tasties.TreeUnpickler.readTypeMappable(TreeUnpickler.scala:1338)
at tastyquery.reader.tasties.TreeUnpickler.readTermType(TreeUnpickler.scala:1247)
at tastyquery.reader.tasties.TreeUnpickler.doReadPattern(TreeUnpickler.scala:841)
at tastyquery.reader.tasties.TreeUnpickler.readPattern(TreeUnpickler.scala:834)
at tastyquery.reader.tasties.TreeUnpickler.doReadCaseDef(TreeUnpickler.scala:1214)
at tastyquery.reader.tasties.TreeUnpickler.readCaseDef(TreeUnpickler.scala:1206)
at tastyquery.reader.tasties.TreeUnpickler.readCases$$anonfun$2(TreeUnpickler.scala:1202)
at tastyquery.reader.tasties.TastyReader.collectWhile(TastyReader.scala:154)
at tastyquery.reader.tasties.TreeUnpickler.readCases(TreeUnpickler.scala:1203)
at tastyquery.reader.tasties.TreeUnpickler.doReadTerm(TreeUnpickler.scala:1069)
at tastyquery.reader.tasties.TreeUnpickler.readTerm(TreeUnpickler.scala:922)
at tastyquery.reader.tasties.TreeUnpickler.doReadValOrDefDef(TreeUnpickler.scala:765)
at tastyquery.reader.tasties.TreeUnpickler.readValOrDefDef(TreeUnpickler.scala:750)
at tastyquery.reader.tasties.TreeUnpickler.doReadStat(TreeUnpickler.scala:528)
at tastyquery.reader.tasties.TreeUnpickler.readStat(TreeUnpickler.scala:473)
at tastyquery.reader.tasties.TreeUnpickler.readStats$$anonfun$1(TreeUnpickler.scala:470)
at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:141)
at tastyquery.reader.tasties.TreeUnpickler.readStats(TreeUnpickler.scala:470)
at tastyquery.reader.tasties.TreeUnpickler.readTemplate(TreeUnpickler.scala:707)
at tastyquery.reader.tasties.TreeUnpickler.doReadStat(TreeUnpickler.scala:512)
at tastyquery.reader.tasties.TreeUnpickler.readStat(TreeUnpickler.scala:473)
at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat(TreeUnpickler.scala:466)
at tastyquery.reader.tasties.TreeUnpickler.readTopLevelStat(TreeUnpickler.scala:454)
at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat$$anonfun$1(TreeUnpickler.scala:465)
at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:141)
at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat(TreeUnpickler.scala:465)
at tastyquery.reader.tasties.TreeUnpickler.readTopLevelStat(TreeUnpickler.scala:454)
at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat$$anonfun$1(TreeUnpickler.scala:465)
at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:141)
at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat(TreeUnpickler.scala:465)
at tastyquery.reader.tasties.TreeUnpickler.readTopLevelStat(TreeUnpickler.scala:454)
at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat$$anonfun$1(TreeUnpickler.scala:465)
at tastyquery.reader.tasties.TastyReader.until(TastyReader.scala:141)
at tastyquery.reader.tasties.TreeUnpickler.doReadTopLevelStat(TreeUnpickler.scala:465)
at tastyquery.reader.tasties.TreeUnpickler.readTopLevelStat(TreeUnpickler.scala:454)
at tastyquery.reader.tasties.TreeUnpickler.read$1(TreeUnpickler.scala:50)
at tastyquery.reader.tasties.TreeUnpickler.unpickle(TreeUnpickler.scala:55)
at tastyquery.reader.Loaders$PackageLoadingInfo.doLoadTasty(Loaders.scala:181)
at tastyquery.reader.Loaders$PackageLoadingInfo.tryLoadRoot(Loaders.scala:107)
at tastyquery.reader.Loaders$PackageLoadingInfo.loadOneRoot$$anonfun$1(Loaders.scala:75)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at tastyquery.reader.Loaders$PackageLoadingInfo.loadingRoots(Loaders.scala:92)
at tastyquery.reader.Loaders$PackageLoadingInfo.loadOneRoot(Loaders.scala:73)
at tastyquery.Symbols$.tastyquery$Symbols$PackageSymbol$$_$getDecl$$anonfun$3$$anonfun$1(Symbols.scala:1900)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at tastyquery.Symbols$PackageSymbol.loadingNewRoots(Symbols.scala:1876)
at tastyquery.Symbols$PackageSymbol.getDecl$$anonfun$3(Symbols.scala:1900)
at scala.Option.orElse(Option.scala:479)
at tastyquery.Symbols$PackageSymbol.getDecl(Symbols.scala:1902)
at tastyquery.Symbols$PackageSymbol.getDecl(Symbols.scala:1908)
at tastyquery.Contexts$Context.findStaticType(Contexts.scala:175)
at Scala382TastyQuery$package$.test(Scala382TastyQuery.scala:20)
at test.main(Scala382TastyQuery.scala:13)
I'm not 100% sure if this is an issue with
tasty-queryor with the standard library itself, but I figured I'd post here first. Let me know if you think I should open an issue at https://github.com/scala/scala3 as well @sjrd.If you take the following code and save it in a file:
Then run it with
scala-cli:You'll see an error: