Closed
Description
The TypeName
enum needs to be extended to cover the "built-in" types from Rust. The following variants would eventually want to be added:
- scalar types:
- unsigned integer types (u32, u64, usize, etc)
- signed integer types
- bool
- char
- tuple types (parameterized by arity, so
Tuple(usize)
) - str -- see extend
TypeName
withstr
type #437 - reference types
&
and&mut
-- createTypeName
for&
and&mut
#438 - raw pointer types
* const
and*mut
-- create typename for raw pointers #439 - array types (requires const work to land)
- slice type -- extend
TypeName
with slice type #440 -
FnDef
(PR: AddFnDef
toTypeName
#449) -
Never
-
Closure
- generator/ generator witness -- Implement generators #593, create a "generator witness" type #504
- generalize the builtin struct type to adt to match rustc #453: generalize struct to enum/union
- Support for multiple variants on
Adt
-- extend chalk ADTs with information about variants #505 - Extern types -- Support extern opaque types. #595
(Need to update this list, not yet complete, see this section of the chalk book for a more complete list as well.