We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent fcfe738 commit c880735Copy full SHA for c880735
compiler/src/dotty/tools/dotc/core/TypeOps.scala
@@ -284,7 +284,15 @@ object TypeOps:
284
}
285
case AndType(tp11, tp12) =>
286
mergeRefinedOrApplied(tp11, tp2) & mergeRefinedOrApplied(tp12, tp2)
287
- case tp1: TypeParamRef if tp1 == tp2 => tp1
+ case tp1: TypeParamRef =>
288
+ tp2.stripTypeVar match
289
+ case tp2: TypeParamRef if tp1 == tp2 => tp1
290
+ case _ => fail
291
+ case tp1: TypeVar =>
292
+ tp2 match
293
+ case tp2: TypeVar if tp1 == tp2 => tp1
294
+ case tp2: TypeParamRef if tp1.stripTypeVar == tp2 => tp2
295
296
case _ => fail
297
298
tests/pos/i23032.scala
@@ -0,0 +1,2 @@
1
+def f[F[_], T, U]: F[T] | F[U] = ???
2
+def x = f.toString
0 commit comments