mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +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
|
return nil
|
||||||
|
|
||||||
case:
|
case:
|
||||||
return UNSUPPORTED_TYPE
|
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)
|
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
|
return UNSUPPORTED_TYPE
|
||||||
|
|||||||
Reference in New Issue
Block a user