File tree 2 files changed +22
-0
lines changed
src/reflect/scala/reflect/internal
2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -2510,6 +2510,9 @@ trait Types
2510
2510
override def baseType (clazz : Symbol ): Type = resultType.baseType(clazz)
2511
2511
override def narrow : Type = resultType.narrow
2512
2512
2513
+ // SI-9475: PolyTypes with dependent method types are still dependent
2514
+ override def isDependentMethodType = resultType.isDependentMethodType
2515
+
2513
2516
/** @M: typeDefSig wraps a TypeBounds in a PolyType
2514
2517
* to represent a higher-kinded type parameter
2515
2518
* wrap lo&hi in polytypes to bind variables
Original file line number Diff line number Diff line change
1
+ trait Ctx {
2
+ trait Tree
3
+ }
4
+
5
+ trait Lst [+ A ] {
6
+ def zip [A1 >: A , B ](that : Lst [B ]): Nothing
7
+ }
8
+
9
+ object Test {
10
+
11
+ // both of these methods should be transformed by uncurry
12
+ // such that List[c.Tree] becomes List[Ctx#Tree]:
13
+ def foo1 (c : Ctx )(l : Lst [c.Tree ]) = l zip l
14
+ def foo2 [@ specialized T ](c : Ctx )(l : Lst [c.Tree ], t : T ) = l zip l
15
+
16
+ // if this doesn't happen for the 2nd method, the specialization
17
+ // transformation fails
18
+ }
19
+
You can’t perform that action at this time.
0 commit comments