|
Scala example source code file (tcpoly_variance_enforce.scala)
The Scala tcpoly_variance_enforce.scala source codetrait coll[m[+x]] trait coll2[m[-x]] trait coll3[m[x]] trait coll4[m[x <: y], y] class FooInvar[x] class FooContra[-x] class FooCov[+x] class FooString[+x <: String] object fcollok extends coll[FooCov] object fcollinv extends coll[FooInvar] // error object fcollcon extends coll[FooContra] // error object fcollwb extends coll[FooString] // error object fcoll2ok extends coll2[FooCov] // error object fcoll2inv extends coll2[FooInvar] // error object fcoll2con extends coll2[FooContra] object fcoll2wb extends coll2[FooString] // error object fcoll3ok extends coll3[FooCov] object fcoll3inv extends coll3[FooInvar] object fcoll3con extends coll3[FooContra] object fcoll3wb extends coll3[FooString] // error object fcoll4ok extends coll4[FooString, String] object fcoll4_1 extends coll4[FooString, Int] // error object fcoll4_2 extends coll4[FooString, Any] // error object test { var ok: coll[FooCov] = _ def x: coll[FooInvar] = sys.error("foo") // error def y: coll[FooContra] = sys.error("foo") // error } // TODO: need test for rank N with N >: 2 Other Scala examples (source code examples)Here is a short list of links related to this Scala tcpoly_variance_enforce.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.