From c1075d0643e74147021cb7144a7c43f64b810e13 Mon Sep 17 00:00:00 2001 From: Dolphin von Chips Date: Thu, 24 Apr 2025 13:24:45 +0300 Subject: [PATCH] Compare types as capture sets in mergeRefinedOrApplied Closes #23032. --- compiler/src/dotty/tools/dotc/core/TypeOps.scala | 2 +- tests/pos/i23032.scala | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 tests/pos/i23032.scala diff --git a/compiler/src/dotty/tools/dotc/core/TypeOps.scala b/compiler/src/dotty/tools/dotc/core/TypeOps.scala index a1e26c20fdbb..735d87a98d44 100644 --- a/compiler/src/dotty/tools/dotc/core/TypeOps.scala +++ b/compiler/src/dotty/tools/dotc/core/TypeOps.scala @@ -278,7 +278,7 @@ object TypeOps: } case AndType(tp11, tp12) => mergeRefinedOrApplied(tp11, tp2) & mergeRefinedOrApplied(tp12, tp2) - case tp1: TypeParamRef if tp1 == tp2 => tp1 + case tp1: TypeParamRef if tp1 =:= tp2 => tp1 case _ => fail } } diff --git a/tests/pos/i23032.scala b/tests/pos/i23032.scala new file mode 100644 index 000000000000..1eb5494ca4b7 --- /dev/null +++ b/tests/pos/i23032.scala @@ -0,0 +1,2 @@ +def f[F[_], T]: F[Unit] | F[T] = ??? +def x[F[_]] = f.toString