mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
73 lines
1.5 KiB
Plaintext
73 lines
1.5 KiB
Plaintext
Things missing:
|
|
|
|
* Attributes
|
|
- All types: @noreflect, @deprecated
|
|
- Struct: @packed, @aligned, @opaque
|
|
- Enums: @distinct, @noreflect
|
|
- Unions: @packed, @aligned, @opaque
|
|
- Functions: @inline, @reflect, @noreturn, @section, @unused, @used, @interrupt, @naked, @convention()
|
|
- Calls: @noinline, @inline
|
|
- Variables, parameters: @unused
|
|
- Constants, globals: @unused, @used, @section
|
|
- Labels: @unused
|
|
|
|
* Designated initializer
|
|
- Array initializer
|
|
- Array range initializer { [1..2] = 2 }
|
|
|
|
* Initializers
|
|
- Array initializers
|
|
- Union initializers
|
|
- Initializers with anonymous members
|
|
|
|
* Asserts
|
|
- assert, $assert
|
|
- @unreachable
|
|
|
|
* Types
|
|
- Vararrays
|
|
- Strings
|
|
- Array
|
|
- Slice
|
|
- Values: size, alignment, name, qualifiedName
|
|
- Functions: offsetof
|
|
- Distinct types
|
|
- Simd types?
|
|
- Complex types?
|
|
- Subtype casts
|
|
- Bitstruct
|
|
- Enumset
|
|
- Typeid
|
|
|
|
* Struct / union
|
|
- Cast to union?
|
|
- Structural typed anonymous structs and casts to them.
|
|
|
|
* Expressions
|
|
- Disallow x >= 0 and x < 0 on unsigned types unless in a macro.
|
|
- Range check arrays on debug
|
|
- Allow negating int if assigned to a larger type. E.g short x = 1; int y = -x;
|
|
- Expression block does not handle defer correctly.
|
|
|
|
* Switch
|
|
- String switch
|
|
- Range case
|
|
|
|
* Functions
|
|
- C ABI
|
|
- Safe varargs
|
|
|
|
* Pre-post conditions
|
|
- Breakdown here
|
|
|
|
* Error handling
|
|
- Error unions
|
|
- Catch/try
|
|
- Function return channel
|
|
|
|
* Enum
|
|
- Values: min, max, array
|
|
- Functions: fomOrdinal, ordinal, fromName, name, fromFullName, fullName, fromQualifiedName, qualifiedName, <value>(), fromValue()
|
|
|
|
|