mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-19 13:00:28 +00:00
Improve reflect.Type_Info_Complex support
This commit is contained in:
@@ -467,7 +467,6 @@ unmarsal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unma
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
case:
|
||||
return UNSUPPORTED_TYPE
|
||||
}
|
||||
@@ -560,6 +559,21 @@ unmarsal_array :: proc(p: ^Parser, v: any) -> (err: Unmarshal_Error) {
|
||||
}
|
||||
|
||||
return assign_array(p, v.data, t.elem, length)
|
||||
|
||||
case reflect.Type_Info_Complex:
|
||||
// NOTE(bill): Allow lengths which are less than the dst array
|
||||
if int(length) > 2 {
|
||||
return UNSUPPORTED_TYPE
|
||||
}
|
||||
|
||||
switch ti.id {
|
||||
case complex32: return assign_array(p, v.data, type_info_of(f16), 2)
|
||||
case complex64: return assign_array(p, v.data, type_info_of(f32), 2)
|
||||
case complex128: return assign_array(p, v.data, type_info_of(f64), 2)
|
||||
}
|
||||
|
||||
return UNSUPPORTED_TYPE
|
||||
|
||||
}
|
||||
|
||||
return UNSUPPORTED_TYPE
|
||||
|
||||
Reference in New Issue
Block a user