Skip to content

Commit fccc8c2

Browse files
Avoid leaking pattern variables
1 parent 9a7795f commit fccc8c2

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

compiler/src/dotty/tools/dotc/typer/Typer.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,8 +1499,10 @@ class Typer extends Namer
14991499
val pt1 = if (bound1.isEmpty) pt else bound1.tpe
15001500
val cases1 = tree.cases.mapconserve(typedTypeCase(_, sel1.tpe, pt1))
15011501
val bound2 =
1502-
if (tree.bound.isEmpty) TypeTree(cases1.map(_.body.tpe).reduce(_ | _))
1503-
else bound1
1502+
if (tree.bound.isEmpty) {
1503+
val cases2 = cases1.map(x => avoid(x.body.tpe, cases1.flatMap(patVars)))
1504+
TypeTree(cases2.reduce(_ | _))
1505+
} else bound1
15041506
assignType(cpy.MatchTypeTree(tree)(bound2, sel1, cases1), bound2, sel1, cases1)
15051507
}
15061508

0 commit comments

Comments
 (0)