Add type aliases for type expressions
This commit is contained in:
1 parent
7a286f2e06
commit
d82a9bb930
6 files changed
+227
-1
No files matched your search
@@ -239,6 +239,32 @@ class TypesTest {
|
||||
""")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testTypeAliases() = runTest {
|
||||
eval("""
|
||||
type Num = Int | Real
|
||||
type AB = A & B
|
||||
class A
|
||||
class B
|
||||
class C: A, B
|
||||
val c = C()
|
||||
assert( c is AB )
|
||||
assert( 1 is Num )
|
||||
assert( !(true is Num) )
|
||||
val v: Num = 1.5
|
||||
assert( v is Num )
|
||||
|
||||
type Maybe<T> = T?
|
||||
fun f<T>(x: Maybe<T>) = x
|
||||
assertEquals(null, f(null))
|
||||
assertEquals(1, f(1))
|
||||
|
||||
type IntList<T: Int> = List<T>
|
||||
fun accept<T: Int>(xs: IntList<T>) { }
|
||||
accept([1,2,3])
|
||||
""".trimIndent())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun multipleReceivers() = runTest {
|
||||
eval("""
|
||||
|
||||
Reference in new issue
Block a user