We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Given the following macro:
import scala.quoted._ import scala.tasty._ object scalatest { inline def assert(condition: => Boolean): Unit = ${ assertImpl('condition) } def assertImpl(cond: Expr[Boolean])(implicit refl: Reflection): Expr[Unit] = { import refl._ import util._ cond.unseal.underlyingArgument match { case t @ Apply(Select(lhs, op), rhs :: Nil) => let(lhs) { left => let(rhs) { right => val app = Select.overloaded(left, op, Nil, right :: Nil) let(app) { result => val l = left.seal val r = right.seal val b = result.seal.cast[Boolean] val code = '{ scala.Predef.assert($b) } code.unseal } } }.seal.cast[Unit] } } }
The following code crashes the compiler:
object Test { import scalatest._ def neverRuns(f: => Unit): Boolean = true def main(args: Array[String]): Unit = { assert(this.neverRuns(sys.error("Sad times 1"))) } }
*** error while checking tests/run-macros/reflect-pos-fun/test_2.scala after phase posttyper *** java.lang.AssertionError: assertion failed: position not set for sys.package # 34901 of class dotty.tools.dotc.ast.Trees$Select in /Users/fliu/Documents/dotty/library/src-3.x/scala/tasty/reflect/utils/TreeUtils.scala while compiling tests/run-macros/reflect-pos-fun/test_2.scala Fatal compiler crash when compiling: tests/run-macros/reflect-pos-fun: assertion failed: position not set for sys.package # 34901 of class dotty.tools.dotc.ast.Trees$Select in /Users/fliu/Documents/dotty/library/src-3.x/scala/tasty/reflect/utils/TreeUtils.scala dotty.DottyPredef$.assertFail(DottyPredef.scala:16) dotty.tools.dotc.typer.Typer$.assertPositioned(Typer.scala:62) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2215) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.ReTyper.typedSelect(ReTyper.scala:41) dotty.tools.dotc.transform.TreeChecker$Checker.typedSelect(TreeChecker.scala:341) dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2111) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2184) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2217) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.typer.ReTyper.typedFunPart(ReTyper.scala:72) dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:807) dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:910) dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:87) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2131) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1229) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined$$anonfun$1(TreeChecker.scala:414) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined(TreeChecker.scala:414) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2151) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:1470) dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2115) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2184) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2250) dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2296) dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:429) dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:700) dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:703) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:411) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:411) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2138) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:704) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:411) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:411) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2138) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1229) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined$$anonfun$1(TreeChecker.scala:414) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined(TreeChecker.scala:414) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2151) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1229) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined$$anonfun$1(TreeChecker.scala:414) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined(TreeChecker.scala:414) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2151) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:704) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:411) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:411) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2138) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:704) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:411) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:411) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2138) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1229) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined$$anonfun$1(TreeChecker.scala:414) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined(TreeChecker.scala:414) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2151) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2217) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:60) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2135) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2217) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1229) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined$$anonfun$1(TreeChecker.scala:414) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedInlined(TreeChecker.scala:414) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2151) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:704) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:411) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:411) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2138) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1546) dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef$$anonfun$2$$anonfun$1(TreeChecker.scala:398) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef$$anonfun$1(TreeChecker.scala:401) dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:169) dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef(TreeChecker.scala:402) dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2118) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2184) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2250) dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2296) dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:429) dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:1679) dotty.tools.dotc.transform.TreeChecker$Checker.typedClassDef(TreeChecker.scala:382) dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2121) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2184) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2250) dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2296) dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:429) dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:1798) dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2161) dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2185) dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:124) dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:267) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2219) dotty.tools.dotc.typer.Typer.typed(Typer.scala:2231) dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:255) dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2307) dotty.tools.dotc.transform.TreeChecker.check(TreeChecker.scala:122) dotty.tools.dotc.transform.TreeChecker.run(TreeChecker.scala:94) dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:316) scala.collection.immutable.List.map(List.scala:286) dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:318) dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:158) dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15) dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10) scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36) scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33) scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198) dotty.tools.dotc.Run.runPhases$5(Run.scala:170) dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:178) dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:102) dotty.tools.dotc.Run.compileUnits(Run.scala:185) dotty.tools.dotc.Run.compileSources(Run.scala:120) dotty.tools.dotc.Run.compile(Run.scala:104) dotty.tools.dotc.Driver.doCompile(Driver.scala:34) dotty.tools.dotc.Driver.process(Driver.scala:172) dotty.tools.dotc.Driver.process(Driver.scala:141)
The text was updated successfully, but these errors were encountered:
a633601
Merge pull request #6541 from dotty-staging/fix-#6535
3bcaf1d
Fix #6535: Add missing span
No branches or pull requests
Given the following macro:
The following code crashes the compiler:
java.lang.AssertionError: assertion failed: position not set for sys.package
The text was updated successfully, but these errors were encountered: