Closed
Description
Compiler version
3.1.3-RC1-bin-20220325-6f3fe05-NIGHTLY
Minimized code
build.sbt
scalaVersion := "3.1.3-RC1-bin-20220325-6f3fe05-NIGHTLY"
libraryDependencies += "org.scala-lang" %% "scala3-tasty-inspector" % scalaVersion.value
run / fork := true
Main.scala
package example
import scala.quoted.*
import scala.tasty.inspector.Inspector
import scala.tasty.inspector.Tasty
import scala.tasty.inspector.TastyInspector
object Main {
val inspector = new Inspector {
def inspect(using Quotes)(tastys: List[Tasty[quotes.type]]): Unit = {
import quotes.reflect.*
val traverser = new TreeTraverser {
override def traverseTree(tree: Tree)(owner: Symbol): Unit = {
tree.pos.sourceCode
super.traverseTree(tree)(owner)
}
}
tastys.foreach { tasty =>
val tree = tasty.ast
traverser.traverseTree(tree)(tree.symbol)
}
}
}
def main(args: Array[String]): Unit = {
val classpath = System.getProperty("java.class.path").split(':').toList
val jar = classOf[dotty.tools.dotc.Compiler].getProtectionDomain.getCodeSource.getLocation.getPath
TastyInspector.inspectAllTastyFiles(
tastyFiles = Nil,
jars = jar :: Nil,
dependenciesClasspath = classpath
)(inspector)
}
}
Output
[info] java.lang.StringIndexOutOfBoundsException: String index out of range: 619 while compiling /Users/kenji/inspector-pos-sourceCode-StringIndexOutOfBoundsException/target/bg-jobs/sbt_e8347122/target/450d1dfe/c07e34d8/scala3-compiler_3-3.1.3-RC1-bin-20220325-6f3fe05-NIGHTLY.jar
[error] Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 619
[error] at java.lang.String.<init>(String.java:205)
[error] at scala.quoted.runtime.impl.QuotesImpl$reflect$PositionMethods$.sourceCode(QuotesImpl.scala:2820)
[error] at scala.quoted.runtime.impl.QuotesImpl$reflect$PositionMethods$.sourceCode(QuotesImpl.scala:2818)
[error] at example.Main$$anon$2.traverseTree(Main.scala:14)
[error] at example.Main$.example$Main$$anon$1$$_$inspect$$anonfun$1(Main.scala:21)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] at scala.collection.immutable.List.foreach(List.scala:333)
[error] at example.Main$$anon$1.inspect(Main.scala:21)
[error] at scala.tasty.inspector.TastyInspector$TastyInspectorPhase$1.runOnImpl(TastyInspector.scala:78)
[error] at scala.tasty.inspector.TastyInspector$TastyInspectorPhase$1.runOn(TastyInspector.scala:70)
[error] at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:225)
[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:1328)
[error] at dotty.tools.dotc.Run.runPhases$1(Run.scala:236)
[error] at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:244)
[error] at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:253)
[error] at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
[error] at dotty.tools.dotc.Run.compileUnits(Run.scala:253)
[error] at dotty.tools.dotc.Run.compileUnits(Run.scala:192)
[error] at dotty.tools.dotc.fromtasty.TASTYRun.compile(TASTYRun.scala:14)
[error] at dotty.tools.dotc.Driver.doCompile(Driver.scala:35)
[error] at dotty.tools.dotc.Driver.process(Driver.scala:195)
[error] at dotty.tools.dotc.Driver.process(Driver.scala:163)
[error] at dotty.tools.dotc.Driver.process(Driver.scala:175)
[error] at scala.tasty.inspector.TastyInspector$.inspectFiles(TastyInspector.scala:117)
[error] at scala.tasty.inspector.TastyInspector$.inspectAllTastyFiles(TastyInspector.scala:59)
[error] at example.Main$.main(Main.scala:33)
[error] at example.Main.main(Main.scala)
[error] Nonzero exit code returned from runner: 1
[error] (Compile / run) Nonzero exit code returned from runner: 1
Expectation
return None