Skip to content

Commit 3bcaf1d

Browse files
authored
Merge pull request #6541 from dotty-staging/fix-#6535
Fix #6535: Add missing span
2 parents 2b6c757 + a633601 commit 3bcaf1d

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

compiler/src/dotty/tools/dotc/transform/PostTyper.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
122122
case pkg: PackageClassDenotation =>
123123
val pobj = pkg.packageObjFor(tree.symbol)
124124
if (pobj.exists)
125-
return transformSelect(cpy.Select(tree)(qual.select(pobj), tree.name), targs)
125+
return transformSelect(cpy.Select(tree)(qual.select(pobj).withSpan(qual.span), tree.name), targs)
126126
case _ =>
127127
}
128128
val tree1 = super.transform(tree)

tests/pos-macros/i6535/Macro_1.scala

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import scala.quoted._
2+
import scala.tasty._
3+
4+
object scalatest {
5+
6+
inline def assert(condition: => Boolean): Unit = ${ assertImpl('condition) }
7+
8+
def assertImpl(cond: Expr[Boolean])(implicit refl: Reflection): Expr[Unit] = {
9+
import refl._
10+
import util._
11+
12+
cond.unseal.underlyingArgument match {
13+
case t @ Apply(Select(lhs, op), rhs :: Nil) =>
14+
let(lhs) { left =>
15+
let(rhs) { right =>
16+
val app = Select.overloaded(left, op, Nil, right :: Nil)
17+
let(app) { result =>
18+
val l = left.seal
19+
val r = right.seal
20+
val b = result.seal.cast[Boolean]
21+
val code = '{ scala.Predef.assert($b) }
22+
code.unseal
23+
}
24+
}
25+
}.seal.cast[Unit]
26+
}
27+
}
28+
29+
}

tests/pos-macros/i6535/Test_2.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
object Test {
2+
import scalatest._
3+
4+
def neverRuns(f: => Unit): Boolean = true
5+
6+
def main(args: Array[String]): Unit = {
7+
assert(this.neverRuns(sys.error("Sad times 1")))
8+
}
9+
}

0 commit comments

Comments
 (0)