File tree 3 files changed +28
-1
lines changed
jvm/src/test/scala/shapeless
3 files changed +28
-1
lines changed Original file line number Diff line number Diff line change
1
+ package shapeless
2
+
3
+ import org .junit .Assert ._
4
+ import org .junit .Test
5
+
6
+ import scala .reflect .runtime .universe .WeakTypeTag
7
+
8
+ class WitnessJvmTests {
9
+
10
+ @ Test
11
+ def testRuntimeReflection : Unit = {
12
+ val w1 : Witness .Lt [Int ] = Witness (1 )
13
+ val v1 = w1.value
14
+ def infer [T ](v : T )(implicit ev : WeakTypeTag [T ]): WeakTypeTag [T ] = ev
15
+ val tag = infer(v1)
16
+ assertEquals(tag.tpe.toString, " w1.T" )
17
+ }
18
+ }
Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ import scala.util.Try
31
31
*/
32
32
trait Witness extends Serializable {
33
33
type T
34
- val value : T {}
34
+ val value : T
35
35
}
36
36
37
37
object Witness extends Dynamic {
Original file line number Diff line number Diff line change @@ -589,6 +589,15 @@ class SingletonTypesTests {
589
589
assertTypedEquals[ObjectThis .type ](ObjectThis .w1.value, ObjectThis .w2.value)
590
590
}
591
591
592
+ @ Test
593
+ def testTypeInference : Unit = {
594
+ val singletonW = Witness (3 )
595
+ def s3 [T ](v : T )(implicit ev : Witness .Aux [T ]) = v
596
+ val v = singletonW.value
597
+ val s = s3(v)
598
+ assertEquals(s, v)
599
+ }
600
+
592
601
class NestingBug {
593
602
val o : AnyRef = new Object {}
594
603
You can’t perform that action at this time.
0 commit comments