Michael Lill
Michael Lill
intrinsics may return `String` which will actually be `ConstString` so it would be okay if `String` is instantiad and and abstract is called on it.
i.e. this loosens the restriction - may not inherit from a choice to - may inherit from one choice only. fixes #2975
e.g. like: ``` _Static_assert((uint8_t) ((uint8_t) UINT8_MAX + (uint8_t) 7) == (uint8_t) 6 , "wrap around semantics failed."); _Static_assert((uint16_t)((uint16_t)UINT16_MAX + (uint16_t)7) == (uint16_t)6 , "wrap around semantics failed."); _Static_assert((uint32_t)((uint32_t)UINT32_MAX + (uint32_t)7)...
Currently the type of numeric literals can be inferred based on its assignment to be one of the supported primitives, e.g. u8, ..., i64 etc. Maybe it makes sense to...
Currently expressions of contracts are not restricted. They may use effects e.g. mutation, they may diverge (never finish), use unlimited heap, stack, complexity is not limited, etc. We may want...
e.g.: ``` private #loop0else1 bool : Any is Routine set #result := { say ("".infix + ({ box(a) }).infix + box(" ").infix + ({ box(#loop0else2.this.#^#loop0.#loop0else2.ix1) }).infix + box(" ").infix +...
just one example but there are many examples in the base library: ``` module internal_array(T type, module data fuzion.sys.Pointer, module length i32) is module index [ ] (i i32) T...
fixes #1777
e.g. ``` ex is something is abstract ```