@@ -1561,6 +1561,8 @@ trait QuoteContext { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
1561
1561
val TypeBoundsTree : TypeBoundsTreeModule
1562
1562
1563
1563
trait TypeBoundsTreeModule { this : TypeBoundsTree .type =>
1564
+ def apply (low : TypeTree , hi : TypeTree ): TypeBoundsTree
1565
+ def copy (original : Tree )(low : TypeTree , hi : TypeTree ): TypeBoundsTree
1564
1566
def unapply (x : TypeBoundsTree ): Option [(TypeTree , TypeTree )]
1565
1567
}
1566
1568
@@ -1587,6 +1589,7 @@ trait QuoteContext { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
1587
1589
val WildcardTypeTree : WildcardTypeTreeModule
1588
1590
1589
1591
trait WildcardTypeTreeModule { this : WildcardTypeTree .type =>
1592
+ def apply (tpe : TypeRepr ): WildcardTypeTree
1590
1593
/** Matches a TypeBoundsTree containing wildcard type bounds */
1591
1594
def unapply (x : WildcardTypeTree ): Boolean
1592
1595
}
@@ -3548,8 +3551,9 @@ trait QuoteContext { self: runtime.QuoteUnpickler & runtime.QuoteMatching =>
3548
3551
case tree : Statement =>
3549
3552
transformStatement(tree)(owner)
3550
3553
case tree : TypeTree => transformTypeTree(tree)(owner)
3551
- case tree : TypeBoundsTree => tree // TODO traverse tree
3552
- case tree : WildcardTypeTree => tree // TODO traverse tree
3554
+ case tree : TypeBoundsTree =>
3555
+ TypeBoundsTree .copy(tree)(transformTypeTree(tree.low)(owner), transformTypeTree(tree.hi)(owner))
3556
+ case tree : WildcardTypeTree => tree
3553
3557
case tree : CaseDef =>
3554
3558
transformCaseDef(tree)(owner)
3555
3559
case tree : TypeCaseDef =>
0 commit comments