File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change
1
+ object Repro {
2
+ trait Responsive {
3
+ type Response
4
+ }
5
+
6
+ object Responsive {
7
+ type Aux [R ] = Responsive {type Response = R }
8
+ type Response [R ] = R match {case Aux [r] => r}
9
+ }
10
+
11
+ case class StringRequest (name : String ) extends Responsive {
12
+ type Response = String
13
+ }
14
+
15
+ def withImplicit [R <: Responsive ](request : R )(implicit ct : scala.reflect.ClassTag [Responsive .Response [R ]]): Responsive .Response [R ] = ???
16
+
17
+ def withFunction [R <: Responsive ](request : R )(call : R => Responsive .Response [R ]): Responsive .Response [R ] = ???
18
+
19
+ def stringWithFunction (req : StringRequest ): String = withFunction(req)(_.getClass.getSimpleName)
20
+
21
+ def stringWithImplicit (req : StringRequest ): String = withImplicit(req)
22
+
23
+ def main (args : Array [String ]): Unit = {}
24
+ }
You can’t perform that action at this time.
0 commit comments