Add type aliases for type expressions

This commit is contained in:
sergeych committed 2026-02-05 21:08:04 +03:00
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("""