tests: cover guarded option sum types in generic calls

This commit is contained in:
Alexander Medvednikov committed 2026-10-15 01:35:00 +03:00
1 parent 1a6f73bc36
commit c023403b50
1 file changed
+28
@@ -0,0 +1,28 @@
struct Named {
name string
}
struct Empty {}
type Reference = Empty | Named
fn unwrap[T](value ?T) T {
return value or { panic('none') }
}
fn name_after_guard(value ?Reference) string {
if value == none {
return 'none'
}
unwrapped := unwrap(value)
if unwrapped is Named {
return unwrapped.name
}
return 'empty'
}
fn test_guarded_optional_sumtype_is_passed_to_generic_option_parameter() {
assert name_after_guard(Reference(Named{ name: 'value' })) == 'value'
assert name_after_guard(Reference(Empty{})) == 'empty'
assert name_after_guard(none) == 'none'
}