mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
32 lines
3.2 KiB
Markdown
32 lines
3.2 KiB
Markdown
Some short names:
|
|
1. expl - explicit
|
|
2. sw/sn - simple widening + subexpression narrowing
|
|
3. yes - always allowed
|
|
4. explptr - explicit if pointer sized
|
|
5. ptrconv - to/from void* is fine, other cast must be explicit
|
|
6. saconv - explicit if same element size
|
|
7. explbase - explicit to base disregaring sign
|
|
8. distel - explicit to same element disregarding distinct
|
|
9. inline - implicit if type subtype
|
|
10. cond - implicit in cond, explicit otherwise
|
|
11. edist - explicit to anything underlying type can convert to, if inline as underlying
|
|
12. arve - if array or vec ptr
|
|
|
|
| from, to | bool | int | float | pointer | subarr | vec | bits | distc | array | struct | union | any | fault | enum | typeid |
|
|
|----------|--------|----------|--------|---------|--------|----------|----------|-------|----------|--------|--------|--------|--------|--------|--------|
|
|
| bool | n/a | expl | expl | no | no | expand | no | edist | no | no | no | no | no | no | no |
|
|
| int | cond | sw/sn | always | explptr | no | expand | explbase | edist | no | no | no | no | no | edist | no |
|
|
| float | cond | expl | sw/sn | no | no | expand | no | edist | no | no | no | no | no | no | no |
|
|
| pointer | cond | explptr | no | ptrconv | arve | expand | no | edist | no | no | no | yes | expl | no | expl |
|
|
| subarray | cond | no | no | no | saconv | no | no | edist | no? | no | no | no | no | no | no |
|
|
| vec | cond | no | no | no | no | as base | no | edist | expl | no | no | no | no | no | no |
|
|
| bits | no | explbase | no | no | no | no | no? | edist | explbase | no | no | no | no | no | no |
|
|
| distc | edist | edist | edist | edist | edist | edist | edist | edist | edist | edist | edist | edist | edist | edist | edist |
|
|
| array | no | no | no | no | no | explbase | explbase | edist | distel | no | no | no | no | no | no |
|
|
| struct | inline | inline | inline | inline | inline | inline | inline | edist | inline | inline | inline | inline | inline | inline | inline |
|
|
| union | no | no | no | no | no | no | no | edist | no | no | no | no | no | no | no |
|
|
| any | cond | no | no | expl | no | no | no | edist | no | no | no | n/a | no | no | no |
|
|
| fault | cond | explptr | no | expl | no | no | no | edist | no | no | no | no | anyf | no | no |
|
|
| enum | no | expl | no | no | no | expand | no | edist | no | no | no | no | no | no | no |
|
|
| typeid | cond | no | no | expl | no | no | no | edist | no | no | no | no | no | no | n/a |
|