File tree Expand file tree Collapse file tree 1 file changed +14
-3
lines changed Expand file tree Collapse file tree 1 file changed +14
-3
lines changed Original file line number Diff line number Diff line change 1
1
object Test {
2
2
trait A
3
3
trait B
4
- trait TestConstructor1 { type F [_ <: A ] }
4
+ trait TestConstructor1 { type F [X <: A ] <: TestConstructor2 [ A ] }
5
5
trait TestConstructor2 [D ] {
6
6
type F [_ <: D ]
7
7
class G [X <: D ]
8
8
trait TestConstructor3 [E ] {
9
- type G [_ <: D & E ]
10
- class H [X <: D & E ]
9
+ type G [X <: D & E ] <: TestConstructor2 .this .F [X ] & H [X ]
10
+ class H [X <: D & E ] {
11
+ type A <: G [X ]
12
+ }
13
+ }
14
+ }
15
+ trait TestConstructor4 [D ] {
16
+ trait TestConstructor5 [E ] {
17
+ trait MSetLike [X <: D & E , This <: MSet [X ] with MSetLike [X , This ]]
18
+ trait MSet [X <: D & E ] extends MSetLike [X , MSet [X ]]
11
19
}
12
20
}
13
21
@@ -34,4 +42,7 @@ object Test {
34
42
type S1 [c <: C ] = ([X <: C ] => f.F [X ] & g.G [X ])[c]
35
43
type S2 [c <: C ] = ([X <: C ] => f.F [X ] | g.G [X ])[c]
36
44
}
45
+ def f3 (f : TestConstructor4 [A ], g : f.TestConstructor5 [B ]): Unit = {
46
+ type P1 [c <: C ] = g.MSet [c]
47
+ }
37
48
}
You can’t perform that action at this time.
0 commit comments