Skip to content

Commit

Permalink
Fix TypeTreeTypeTest to not match TypeBoundsTrees
Browse files Browse the repository at this point in the history
Also see `TypeBoundsTreeTypeTest` in `QuotesImpl` and `Quotes` spec

```
   *           +- TypeTree ----+- Inferred
   *           |               +- ...
   *           |               ...
   *           +- TypeBoundsTree
```

Fixes  #19480
  • Loading branch information
nicolasstucki committed Mar 4, 2024
1 parent 4e127bd commit 9369e5c
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/src/scala/quoted/runtime/impl/QuotesImpl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -1105,7 +1105,7 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler

object TypeTreeTypeTest extends TypeTest[Tree, TypeTree]:
def unapply(x: Tree): Option[TypeTree & x.type] = x match
case x: (tpd.TypeBoundsTree & x.type) => None
case TypeBoundsTreeTypeTest(_) => None
case x: (tpd.Tree & x.type) if x.isType => Some(x)
case _ => None
end TypeTreeTypeTest
Expand Down
11 changes: 11 additions & 0 deletions tests/pos-macros/i19480/Macro_1.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import scala.quoted.*

inline def whatever: Int = ${whateverImpl}

def whateverImpl(using Quotes): Expr[Int] = {
import quotes.reflect.*
val t = '{class K[T]}.asTerm
object mapper extends TreeMap
mapper.transformTree(t)(Symbol.spliceOwner)
'{42}
}
1 change: 1 addition & 0 deletions tests/pos-macros/i19480/Test_2.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
def test = whatever
11 changes: 11 additions & 0 deletions tests/pos-macros/i19480b/Macro_1.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import scala.quoted.*

inline def whatever: Int = ${whateverImpl}

def whateverImpl(using Quotes): Expr[Int] = {
import quotes.reflect.*
val t = '{class K[T[_]]}.asTerm
object mapper extends TreeMap
mapper.transformTree(t)(Symbol.spliceOwner)
'{42}
}
1 change: 1 addition & 0 deletions tests/pos-macros/i19480b/Test_2.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
def test = whatever

0 comments on commit 9369e5c

Please sign in to comment.