diff --git a/libkc3/tag_mul.c b/libkc3/tag_mul.c
index 6ac6ff3..1d39c29 100644
--- a/libkc3/tag_mul.c
+++ b/libkc3/tag_mul.c
@@ -21,6 +21,14 @@ s_tag * tag_mul (const s_tag *a, const s_tag *b, s_tag *dest)
{
s_complex c = {0};
s_ratio r = {0};
+ s16 i_s16;
+ //s16 i_s32;
+ //s16 i_s64;
+ //s16 i_sw;
+ s16 i_u16;
+ //s16 i_u32;
+ //s16 i_u64;
+ //s16 i_uw;
s_integer tmp = {0};
s_integer tmp2 = {0};
assert(a);
@@ -466,7 +474,14 @@ s_tag * tag_mul (const s_tag *a, const s_tag *b, s_tag *dest)
ratio_clean(&r);
return dest;
case TAG_S8:
- return tag_init_s16(dest, (s16) a->data.s8 * (s16) b->data.s8);
+ i_s16 = (s16) a->data.s8 * (s16) b->data.s8;
+ if (i_s16 < S8_MIN)
+ return tag_init_s16(dest, i_s16);
+ if (i_s16 < 0)
+ return tag_init_s8(dest, i_s16);
+ if (i_s16 <= U8_MAX)
+ return tag_init_u8(dest, i_s16);
+ return tag_init_u16(dest, i_s16);
case TAG_S16:
return tag_init_s32(dest, (s32) a->data.s8 * (s32) b->data.s16);
case TAG_S32:
@@ -488,7 +503,14 @@ s_tag * tag_mul (const s_tag *a, const s_tag *b, s_tag *dest)
integer_clean(&tmp2);
return dest;
case TAG_U8:
- return tag_init_s16(dest, (s16) a->data.s8 * (s16) b->data.u8);
+ i_s16 = (s16) a->data.s8 * (s16) b->data.u8;
+ if (i_s16 < S8_MIN)
+ return tag_init_s16(dest, i_s16);
+ if (i_s16 < 0)
+ return tag_init_s8(dest, i_s16);
+ if (i_s16 <= U8_MAX)
+ return tag_init_u8(dest, i_s16);
+ return tag_init_u16(dest, i_s16);
case TAG_U16:
return tag_init_s32(dest, (s32) a->data.s8 * (s32) b->data.u16);
case TAG_U32:
@@ -893,7 +915,14 @@ s_tag * tag_mul (const s_tag *a, const s_tag *b, s_tag *dest)
ratio_clean(&r);
return dest;
case TAG_S8:
- return tag_init_s16(dest, (s16) a->data.u8 * (s16) b->data.s8);
+ i_s16 = (s16) a->data.u8 * (s16) b->data.s8;
+ if (i_s16 < S8_MIN)
+ return tag_init_s16(dest, i_s16);
+ if (i_s16 < 0)
+ return tag_init_s8(dest, i_s16);
+ if (i_s16 <= U8_MAX)
+ return tag_init_u8(dest, i_s16);
+ return tag_init_u16(dest, i_s16);
case TAG_S16:
return tag_init_s32(dest, (s32) a->data.u8 * (s32) b->data.s16);
case TAG_S32:
@@ -915,7 +944,10 @@ s_tag * tag_mul (const s_tag *a, const s_tag *b, s_tag *dest)
integer_clean(&tmp2);
return dest;
case TAG_U8:
- return tag_init_u16(dest, (u16) a->data.u8 * (u16) b->data.u8);
+ i_u16 = (u16) a->data.u8 * (u16) b->data.u8;
+ if (i_u16 <= U8_MAX)
+ return tag_init_u8(dest, i_u16);
+ return tag_init_u16(dest, i_u16);
case TAG_U16:
return tag_init_u32(dest, (u32) a->data.u8 * (u32) b->data.u16);
case TAG_U32:
diff --git a/libkc3/tag_neg.c b/libkc3/tag_neg.c
index 52bae1b..9ef6b64 100644
--- a/libkc3/tag_neg.c
+++ b/libkc3/tag_neg.c
@@ -17,6 +17,7 @@
s_tag * tag_neg (const s_tag *tag, s_tag *result)
{
+ s16 i_s16;
s_integer tmp = {0};
switch (tag->type) {
case TAG_INTEGER:
@@ -50,9 +51,23 @@ s_tag * tag_neg (const s_tag *tag, s_tag *result)
case TAG_S16:
return tag_init_s32(result, - (s32) tag->data.s16);
case TAG_S8:
- return tag_init_s16(result, - (s16) tag->data.s8);
+ i_s16 = - (s16) tag->data.s8;
+ if (i_s16 < S8_MIN)
+ return tag_init_s16(result, i_s16);
+ if (i_s16 < 0)
+ return tag_init_s8(result, i_s16);
+ if (i_s16 <= U8_MAX)
+ return tag_init_u8(result, i_s16);
+ return tag_init_u16(result, i_s16);
case TAG_U8:
- return tag_init_s16(result, - (s16) tag->data.u8);
+ i_s16 = - (s16) tag->data.u8;
+ if (i_s16 < S8_MIN)
+ return tag_init_s16(result, i_s16);
+ if (i_s16 < 0)
+ return tag_init_s8(result, i_s16);
+ if (i_s16 <= U8_MAX)
+ return tag_init_u8(result, i_s16);
+ return tag_init_u16(result, i_s16);
case TAG_U16:
return tag_init_s32(result, - (s32) tag->data.u16);
case TAG_U32:
diff --git a/test/buf_inspect_test.c b/test/buf_inspect_test.c
index dad0066..6bea34f 100644
--- a/test/buf_inspect_test.c
+++ b/test/buf_inspect_test.c
@@ -390,21 +390,21 @@ TEST_CASE(buf_inspect_tag)
BUF_INSPECT_TEST_TAG(tag_list(&tag, NULL), "[]");
BUF_INSPECT_TEST_TAG(tag_list_1(&tag, "[[] | []]"), "[[]]");
BUF_INSPECT_TEST_TAG(tag_list_1(&tag, "[]"), "[]");
- BUF_INSPECT_TEST_TAG(tag_s16(&tag, -0x100), "(S16) -256");
- BUF_INSPECT_TEST_TAG(tag_s32(&tag, -0x10000), "(S32) -65536");
- BUF_INSPECT_TEST_TAG(tag_s64(&tag, -0x100000000), "(S64) -4294967296");
- BUF_INSPECT_TEST_TAG(tag_s8(&tag, -1), "(S8) -1");
- BUF_INSPECT_TEST_TAG(tag_s8(&tag, -10), "(S8) -10");
+ BUF_INSPECT_TEST_TAG(tag_s16(&tag, -0x100), "-256");
+ BUF_INSPECT_TEST_TAG(tag_s32(&tag, -0x10000), "-65536");
+ BUF_INSPECT_TEST_TAG(tag_s64(&tag, -0x100000000), "-4294967296");
+ BUF_INSPECT_TEST_TAG(tag_s8(&tag, -1), "-1");
+ BUF_INSPECT_TEST_TAG(tag_s8(&tag, -10), "-10");
BUF_INSPECT_TEST_TAG(tag_str(&tag, NULL, 0, ""), "\"\"");
BUF_INSPECT_TEST_TAG(tag_str_1(&tag, NULL, ""), "\"\"");
BUF_INSPECT_TEST_TAG(tag_str_1(&tag, NULL, "09AZaz"), "\"09AZaz\"");
BUF_INSPECT_TEST_TAG(tag_sym(&tag, sym_1("Module")), "Module");
- BUF_INSPECT_TEST_TAG(tag_u16(&tag, 0x100), "(U16) 256");
- BUF_INSPECT_TEST_TAG(tag_u32(&tag, 0x10000), "(U32) 65536");
- BUF_INSPECT_TEST_TAG(tag_u64(&tag, 0x100000000), "(U64) 4294967296");
- BUF_INSPECT_TEST_TAG(tag_u8(&tag, 0), "(U8) 0");
- BUF_INSPECT_TEST_TAG(tag_u8(&tag, 1), "(U8) 1");
- BUF_INSPECT_TEST_TAG(tag_u8(&tag, 10), "(U8) 10");
+ BUF_INSPECT_TEST_TAG(tag_u16(&tag, 0x100), "256");
+ BUF_INSPECT_TEST_TAG(tag_u32(&tag, 0x10000), "65536");
+ BUF_INSPECT_TEST_TAG(tag_u64(&tag, 0x100000000), "4294967296");
+ BUF_INSPECT_TEST_TAG(tag_u8(&tag, 0), "0");
+ BUF_INSPECT_TEST_TAG(tag_u8(&tag, 1), "1");
+ BUF_INSPECT_TEST_TAG(tag_u8(&tag, 10), "10");
BUF_INSPECT_TEST_TAG(tag_void(&tag), "void");
tag_clean(&tag);
}
diff --git a/test/facts_test_dump_file.expected.facts b/test/facts_test_dump_file.expected.facts
index 23008e1..19ea675 100644
--- a/test/facts_test_dump_file.expected.facts
+++ b/test/facts_test_dump_file.expected.facts
@@ -1,17 +1,17 @@
%{module: KC3.Facts.Dump,
version: 1}
add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
-add {(S64) -4294967296, (S64) -4294967296, (S64) -4294967296}
-add {(S32) -65536, (S32) -65536, (S32) -65536}
-add {(S16) -256, (S16) -256, (S16) -256}
-add {(S8) -10, (S8) -10, (S8) -10}
-add {(S8) -1, (S8) -1, (S8) -1}
-add {(U8) 0, (U8) 0, (U8) 0}
-add {(U8) 1, (U8) 1, (U8) 1}
-add {(U8) 10, (U8) 10, (U8) 10}
-add {(U16) 256, (U16) 256, (U16) 256}
-add {(U32) 65536, (U32) 65536, (U32) 65536}
-add {(U64) 4294967296, (U64) 4294967296, (U64) 4294967296}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
add {18446744073709551616, 18446744073709551616, 18446744073709551616}
add {[], [], []}
add {[[], []], [[], []], [[], []]}
diff --git a/test/facts_test_log_add.expected.facts b/test/facts_test_log_add.expected.facts
index 6930e1d..5286f7a 100644
--- a/test/facts_test_log_add.expected.facts
+++ b/test/facts_test_log_add.expected.facts
@@ -8,16 +8,16 @@ add {{:a, :b}, {:a, :b}, {:a, :b}}
add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
add {{a, b}, {a, b}, {a, b}}
add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
-add {(U8) 0, (U8) 0, (U8) 0}
-add {(U8) 1, (U8) 1, (U8) 1}
-add {(U8) 10, (U8) 10, (U8) 10}
-add {(U16) 256, (U16) 256, (U16) 256}
-add {(U32) 65536, (U32) 65536, (U32) 65536}
-add {(U64) 4294967296, (U64) 4294967296, (U64) 4294967296}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
add {18446744073709551616, 18446744073709551616, 18446744073709551616}
-add {(S8) -1, (S8) -1, (S8) -1}
-add {(S8) -10, (S8) -10, (S8) -10}
-add {(S16) -256, (S16) -256, (S16) -256}
-add {(S32) -65536, (S32) -65536, (S32) -65536}
-add {(S64) -4294967296, (S64) -4294967296, (S64) -4294967296}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
diff --git a/test/facts_test_log_remove.expected.facts b/test/facts_test_log_remove.expected.facts
index 068f723..f96c838 100644
--- a/test/facts_test_log_remove.expected.facts
+++ b/test/facts_test_log_remove.expected.facts
@@ -8,32 +8,32 @@ add {{:a, :b}, {:a, :b}, {:a, :b}}
add {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
add {{a, b}, {a, b}, {a, b}}
add {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
-add {(U8) 0, (U8) 0, (U8) 0}
-add {(U8) 1, (U8) 1, (U8) 1}
-add {(U8) 10, (U8) 10, (U8) 10}
-add {(U16) 256, (U16) 256, (U16) 256}
-add {(U32) 65536, (U32) 65536, (U32) 65536}
-add {(U64) 4294967296, (U64) 4294967296, (U64) 4294967296}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
add {18446744073709551616, 18446744073709551616, 18446744073709551616}
-add {(S8) -1, (S8) -1, (S8) -1}
-add {(S8) -10, (S8) -10, (S8) -10}
-add {(S16) -256, (S16) -256, (S16) -256}
-add {(S32) -65536, (S32) -65536, (S32) -65536}
-add {(S64) -4294967296, (S64) -4294967296, (S64) -4294967296}
+add {-1, -1, -1}
+add {-10, -10, -10}
+add {-256, -256, -256}
+add {-65536, -65536, -65536}
+add {-4294967296, -4294967296, -4294967296}
add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
remove {-18446744073709551616, -18446744073709551616, -18446744073709551616}
-remove {(S64) -4294967296, (S64) -4294967296, (S64) -4294967296}
-remove {(S32) -65536, (S32) -65536, (S32) -65536}
-remove {(S16) -256, (S16) -256, (S16) -256}
-remove {(S8) -10, (S8) -10, (S8) -10}
-remove {(S8) -1, (S8) -1, (S8) -1}
+remove {-4294967296, -4294967296, -4294967296}
+remove {-65536, -65536, -65536}
+remove {-256, -256, -256}
+remove {-10, -10, -10}
+remove {-1, -1, -1}
remove {18446744073709551616, 18446744073709551616, 18446744073709551616}
-remove {(U64) 4294967296, (U64) 4294967296, (U64) 4294967296}
-remove {(U32) 65536, (U32) 65536, (U32) 65536}
-remove {(U16) 256, (U16) 256, (U16) 256}
-remove {(U8) 10, (U8) 10, (U8) 10}
-remove {(U8) 1, (U8) 1, (U8) 1}
-remove {(U8) 0, (U8) 0, (U8) 0}
+remove {4294967296, 4294967296, 4294967296}
+remove {65536, 65536, 65536}
+remove {256, 256, 256}
+remove {10, 10, 10}
+remove {1, 1, 1}
+remove {0, 0, 0}
remove {{{a, b}, {c, d}}, {{a, b}, {c, d}}, {{a, b}, {c, d}}}
remove {{a, b}, {a, b}, {a, b}}
remove {{{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}, {{:a, :b}, {:c, :d}}}
diff --git a/test/facts_test_save.expected.facts b/test/facts_test_save.expected.facts
index 23008e1..19ea675 100644
--- a/test/facts_test_save.expected.facts
+++ b/test/facts_test_save.expected.facts
@@ -1,17 +1,17 @@
%{module: KC3.Facts.Dump,
version: 1}
add {-18446744073709551616, -18446744073709551616, -18446744073709551616}
-add {(S64) -4294967296, (S64) -4294967296, (S64) -4294967296}
-add {(S32) -65536, (S32) -65536, (S32) -65536}
-add {(S16) -256, (S16) -256, (S16) -256}
-add {(S8) -10, (S8) -10, (S8) -10}
-add {(S8) -1, (S8) -1, (S8) -1}
-add {(U8) 0, (U8) 0, (U8) 0}
-add {(U8) 1, (U8) 1, (U8) 1}
-add {(U8) 10, (U8) 10, (U8) 10}
-add {(U16) 256, (U16) 256, (U16) 256}
-add {(U32) 65536, (U32) 65536, (U32) 65536}
-add {(U64) 4294967296, (U64) 4294967296, (U64) 4294967296}
+add {-4294967296, -4294967296, -4294967296}
+add {-65536, -65536, -65536}
+add {-256, -256, -256}
+add {-10, -10, -10}
+add {-1, -1, -1}
+add {0, 0, 0}
+add {1, 1, 1}
+add {10, 10, 10}
+add {256, 256, 256}
+add {65536, 65536, 65536}
+add {4294967296, 4294967296, 4294967296}
add {18446744073709551616, 18446744073709551616, 18446744073709551616}
add {[], [], []}
add {[[], []], [[], []], [[], []]}
diff --git a/test/ikc3/access.out.expected b/test/ikc3/access.out.expected
index ee4497f..dff8b47 100644
--- a/test/ikc3/access.out.expected
+++ b/test/ikc3/access.out.expected
@@ -1,30 +1,30 @@
-%{a: (U8) 1, b: (U8) 2, c: (U8) 3}.a
-(U8) 1
-%{a: (U8) 1, b: (U8) 2, c: (U8) 3}.b
-(U8) 2
-%{a: (U8) 1, b: (U8) 2, c: (U8) 3}.c
-(U8) 3
-%{a: %{b: %{c: (U8) 1}}}.a
-%{b: %{c: (U8) 1}}
-%{a: %{b: %{c: (U8) 1}}}.a.b
-%{c: (U8) 1}
-%{a: %{b: %{c: (U8) 1}}}.a.b.c
-(U8) 1
-map = %{a: %{b: %{c: (U8) 1}}}
-%{a: %{b: %{c: (U8) 1}}}
+%{a: 1, b: 2, c: 3}.a
+1
+%{a: 1, b: 2, c: 3}.b
+2
+%{a: 1, b: 2, c: 3}.c
+3
+%{a: %{b: %{c: 1}}}.a
+%{b: %{c: 1}}
+%{a: %{b: %{c: 1}}}.a.b
+%{c: 1}
+%{a: %{b: %{c: 1}}}.a.b.c
+1
+map = %{a: %{b: %{c: 1}}}
+%{a: %{b: %{c: 1}}}
map
-%{a: %{b: %{c: (U8) 1}}}
+%{a: %{b: %{c: 1}}}
map.a
-%{b: %{c: (U8) 1}}
+%{b: %{c: 1}}
map.a.b
-%{c: (U8) 1}
+%{c: 1}
map.a.b.c
-(U8) 1
+1
map.a.b.c + map.a.b.c
-(U8) 2
+2
"0 #{map.a.b.c} 2"
"0 1 2"
op = %KC3.Operator{}
-%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: (U8) 0, operator_associativity: :left}
+%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: 0, operator_associativity: :left}
op.sym
:+
diff --git a/test/ikc3/array.out.expected b/test/ikc3/array.out.expected
index 85ef14e..7b2ba69 100644
--- a/test/ikc3/array.out.expected
+++ b/test/ikc3/array.out.expected
@@ -2,18 +2,18 @@
(U8[]) {0, 1}
a[0]
a[1]
-(U8) 0
-(U8) 1
+0
+1
(U8[]) {{0, 1}, {2, 3}}
(U8[]) {{0, 1}, {2, 3}}
b[0][0]
b[0][1]
b[1][0]
b[1][1]
-(U8) 0
-(U8) 1
-(U8) 2
-(U8) 3
+0
+1
+2
+3
(U8[]) {{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}
c[0][0][0]
c[0][0][1]
@@ -23,14 +23,14 @@ c[1][0][0]
c[1][0][1]
c[1][1][0]
c[1][1][1]
-(U8) 0
-(U8) 1
-(U8) 2
-(U8) 3
-(U8) 4
-(U8) 5
-(U8) 6
-(U8) 7
+0
+1
+2
+3
+4
+5
+6
+7
(U8[]) {{{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}, {{{8, 9}, {10, 11}}, {{12, 13}, {14, 15}}}}
d[0][0][0][0]
d[0][0][0][1]
@@ -48,39 +48,39 @@ d[1][1][0][0]
d[1][1][0][1]
d[1][1][1][0]
d[1][1][1][1]
-(U8) 0
-(U8) 1
-(U8) 2
-(U8) 3
-(U8) 4
-(U8) 5
-(U8) 6
-(U8) 7
-(U8) 8
-(U8) 9
-(U8) 10
-(U8) 11
-(U8) 12
-(U8) 13
-(U8) 14
-(U8) 15
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
(U8[]) {2}
-(U8) 2
+2
(U8[]) {2, 4}
-(U8) 2
-(U8) 4
+2
+4
(U8[]) {2, 4, 6}
-(U8) 2
-(U8) 4
-(U8) 6
+2
+4
+6
(U8[]) {0, 1, 2}
-(U8) 0
-(U8) 1
-(U8) 2
+0
+1
+2
(U16[]) {256, 257, 258}
-(U16) 256
-(U16) 257
-(U16) 258
+256
+257
+258
(U32[]) {256, 257, 258}
(U32) 256
(U32) 257
@@ -93,10 +93,10 @@ d[1][1][1][1]
(Integer[]) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
1000000000000000000000000000000001
2000000000000000000000000000000002
-(List[]) {[(U8) 1, (U8) 2], [(U8) 3, (U8) 4]}
-(List[]) {[(U8) 1, (U8) 2], [(U8) 3, (U8) 4]}
-(List[]) {[(U8) 1, (U8) 2], [(U8) 3, (U8) 4]}
-[(U8) 1, (U8) 2]
-[(U8) 3, (U8) 4]
+(List[]) {[1, 2], [3, 4]}
+(List[]) {[1, 2], [3, 4]}
+(List[]) {[1, 2], [3, 4]}
+[1, 2]
+[3, 4]
(GL.Vertex[]) {}
(GL.Vertex[]) {}
diff --git a/test/ikc3/block.out.expected b/test/ikc3/block.out.expected
index 1d41c6e..e059ec2 100644
--- a/test/ikc3/block.out.expected
+++ b/test/ikc3/block.out.expected
@@ -1,43 +1,43 @@
do
- (U8) 1
+ 1
end
-(U8) 1
+1
do
- (U8) 1
- (U8) 2
+ 1
+ 2
end
-(U8) 2
+2
do
- (U8) 1
- (U8) 2
- (U8) 3
+ 1
+ 2
+ 3
end
-(U8) 3
+3
do
- (U8) 1
+ 1
end
-(U8) 1
+1
do
- (U8) 1
- (U8) 2
+ 1
+ 2
end
-(U8) 2
+2
do
- (U8) 1
- (U8) 2
- (U8) 3
+ 1
+ 2
+ 3
end
-(U8) 3
+3
do
- (U8) 1 + (U8) 1
- (U8) 2 + (U8) 2
- (U8) 3 + (U8) 3
+ 1 + 1
+ 2 + 2
+ 3 + 3
end
-(U8) 6
+6
do
- (U8) 1 + (U8) 1
- (U8) 2 + (U8) 2
- (U8) 6
+ 1 + 1
+ 2 + 2
+ 6
end
do
def cast = cfn S32 "s32_init_cast" (Result, Sym, Tag)
diff --git a/test/ikc3/call.out.expected b/test/ikc3/call.out.expected
index 9649141..b58c5d9 100644
--- a/test/ikc3/call.out.expected
+++ b/test/ikc3/call.out.expected
@@ -1,11 +1,11 @@
test()
-test((U8) 1)
-test((U8) 1, (U8) 2)
-test((U8) 1, (U8) 2, (U8) 3)
+test(1)
+test(1, 2)
+test(1, 2, 3)
Test.test()
-Test.test((U8) 1)
-Test.test((U8) 1, (U8) 2)
-Test.test((U8) 1, (U8) 2, (U8) 3)
-first([(U8) 1, (U8) 2])
-first([(U8) 2, (U8) 3])
-((U8) 1 + (U8) 2)
+Test.test(1)
+Test.test(1, 2)
+Test.test(1, 2, 3)
+first([1, 2])
+first([2, 3])
+(1 + 2)
diff --git a/test/ikc3/cast.kc3 b/test/ikc3/cast.kc3
index 786773f..f2a1c37 100644
--- a/test/ikc3/cast.kc3
+++ b/test/ikc3/cast.kc3
@@ -1,25 +1,35 @@
+quote (S8) 0
+(S8) 0
quote (S8) -1
(S8) -1
-quote (S8) -127
-(S8) -127
-quote (S16) -127
-(S16) -127
+quote (S8) -128
+(S8) -128
+quote (S8) -129
+(S8) -129
quote (S16) -128
(S16) -128
-quote (S16) -32767
-(S16) -32767
-quote (S32) -32767
-(S32) -32767
+quote (S16) -129
+(S16) -129
+quote (S16) -32768
+(S16) -32768
+quote (S16) -32769
+(S16) 32767
quote (S32) -32768
(S32) -32768
-quote (S32) -2147483647
-(S32) -2147483647
-quote (S64) -2147483647
-(S64) -2147483647
+quote (S32) -32769
+(S32) -32769
+quote (S32) -2147483648
+(S32) -2147483648
+quote (S32) -2147483649
+(S32) -2147483649
quote (S64) -2147483648
(S64) -2147483648
-quote (S64) -9223372036854775807
-(S64) -9223372036854775807
+quote (S64) -2147483649
+(S64) -2147483649
+quote (S64) -9223372036854775808
+(S64) -9223372036854775808
+quote (S64) -9223372036854775809
+(S64) -9223372036854775809
quote (U8) 0
(U8) 0
quote (U8) 1
diff --git a/test/ikc3/cast.out.expected b/test/ikc3/cast.out.expected
index a7999d6..4234fa9 100644
--- a/test/ikc3/cast.out.expected
+++ b/test/ikc3/cast.out.expected
@@ -1,45 +1,55 @@
+(S8) 0
+(S8) 0
(S8) -1
-(S8) -1
-(S8) -127
-(S8) -127
-(S16) -127
-(S16) -127
+-1
+(S8) -128
+-128
+(S8) -129
+(S8) 127
(S16) -128
(S16) -128
-(S16) -32767
-(S16) -32767
-(S32) -32767
-(S32) -32767
+(S16) -129
+-129
+(S16) -32768
+-32768
+(S16) -32769
+(S16) 32767
(S32) -32768
(S32) -32768
-(S32) -2147483647
-(S32) -2147483647
-(S64) -2147483647
-(S64) -2147483647
+(S32) -32769
+-32769
+(S32) -2147483648
+-2147483648
+(S32) -2147483649
+(S32) 2147483647
(S64) -2147483648
(S64) -2147483648
-(S64) -9223372036854775807
-(S64) -9223372036854775807
-(U8) 0
+(S64) -2147483649
+-2147483649
+(S64) -9223372036854775808
+-9223372036854775808
+(S64) -9223372036854775809
+(S64) 9223372036854775807
(U8) 0
+0
(U8) 1
-(U8) 1
-(U8) 255
+1
(U8) 255
+255
(U8) 256
-(U8) 0
+0
(U16) 256
-(U16) 256
-(U16) 65535
+256
(U16) 65535
+65535
(U16) 65536
(U16) 0
(U32) 65536
-(U32) 65536
+65536
(U32) 4294967296
(U32) 0
(U64) 4294967296
-(U64) 4294967296
+4294967296
(U64) 18446744073709551616
(U64) 0
(Integer) 18446744073709551616
diff --git a/test/ikc3/complex.out.expected b/test/ikc3/complex.out.expected
index 864ce5a..ce85aa6 100644
--- a/test/ikc3/complex.out.expected
+++ b/test/ikc3/complex.out.expected
@@ -1,14 +1,14 @@
-(U8) 0 +i (U8) 0
-(S16) 0 +i (U8) 0
-(U8) 0 +i (U8) 1
-(S16) 0 +i (U8) 1
-(U8) 1 +i (U16) 256
-(S16) 1 +i (U16) 256
-(U16) 256 +i (U32) 65536
-(S32) 256 +i (U32) 65536
-(U32) 65536 +i (U64) 4294967296
-(S64) 65536 +i (U64) 4294967296
-(U64) 4294967296 +i 18446744073709551616
+0 +i 0
+0 +i 0
+0 +i 1
+0 +i 1
+1 +i 256
+1 +i 256
+256 +i 65536
+256 +i 65536
+65536 +i 4294967296
+65536 +i 4294967296
+4294967296 +i 18446744073709551616
4294967296 +i 18446744073709551616
18446744073709551616 +i 340282366920938463463374607431768211456
18446744073709551616 +i 340282366920938463463374607431768211456
@@ -16,15 +16,15 @@
340282366920938463463374607431768211456 +i 115792089237316195423570985008687907853269984665640564039457584007913129639936
115792089237316195423570985008687907853269984665640564039457584007913129639936 +i 115792089237316195423570985008687907853269984665640564039457584007913129639936
115792089237316195423570985008687907853269984665640564039457584007913129639936 +i 115792089237316195423570985008687907853269984665640564039457584007913129639936
-(U8) 0 +i (S8) -1
-(S16) 0 +i (S8) -1
-(S8) -1 +i (S16) -256
-(S16) -1 +i (S16) -256
-(S16) -256 +i (S32) -65536
-(S32) -256 +i (S64) -65536
-(S32) -65536 +i (S64) -4294967296
-(S64) -65536 +i -4294967296
-(S64) -4294967296 +i -18446744073709551616
+0 +i -1
+0 +i -1
+-1 +i -256
+-1 +i -256
+-256 +i -65536
+-256 +i -65536
+-65536 +i -4294967296
+-65536 +i -4294967296
+-4294967296 +i -18446744073709551616
-4294967296 +i -18446744073709551616
-18446744073709551616 +i -340282366920938463463374607431768211456
-18446744073709551616 +i -340282366920938463463374607431768211456
@@ -32,9 +32,9 @@
-340282366920938463463374607431768211456 +i -115792089237316195423570985008687907853269984665640564039457584007913129639936
-115792089237316195423570985008687907853269984665640564039457584007913129639936 +i -115792089237316195423570985008687907853269984665640564039457584007913129639936
-115792089237316195423570985008687907853269984665640564039457584007913129639936 +i -115792089237316195423570985008687907853269984665640564039457584007913129639936
-(U8) 3 +i (U8) 2 + (U8) 2 +i (U8) 3 +i ((U8) 1 +i (U8) 1)
-(S64) 4 +i (S16) 6
-((U8) 0 +i (U8) 1) * ((U8) 1 +i (U8) 0)
-(S64) 0 +i (S64) 1
-((U8) 1 +i (U8) 2) * ((U8) 3 +i (U8) 4)
-(S64) -5 +i (S64) 10
+3 +i 2 + 2 +i 3 +i (1 +i 1)
+4 +i 6
+(0 +i 1) * (1 +i 0)
+0 +i 1
+(1 +i 2) * (3 +i 4)
+-5 +i 10
diff --git a/test/ikc3/def.out.expected b/test/ikc3/def.out.expected
index 932f58c..6997c75 100644
--- a/test/ikc3/def.out.expected
+++ b/test/ikc3/def.out.expected
@@ -1,19 +1,19 @@
-def zero = (U8) 0
+def zero = 0
zero
zero
-(U8) 0
-def one_two_three = [(U8) 1, (U8) 2, (U8) 3]
+0
+def one_two_three = [1, 2, 3]
one_two_three
one_two_three
-[(U8) 1, (U8) 2, (U8) 3]
-def double = fn (x) { x * (U8) 2 }
+[1, 2, 3]
+def double = fn (x) { x * 2 }
double
double
-fn (x) { x * (U8) 2 }
-double((U8) 200)
-(U16) 400
+fn (x) { x * 2 }
+double(200)
+400
double(zero)
-(U16) 0
+0
def double_tuple = macro (x) do
quote do
x = ^ unquote(x)
@@ -28,12 +28,12 @@ macro (x) do
{x, x}
end
end
-double_tuple((U8) 200)
-{(U8) 200, (U8) 200}
+double_tuple(200)
+{200, 200}
double_tuple(zero)
-{(U8) 0, (U8) 0}
+{0, 0}
double_tuple(one_two_three)
-{[(U8) 1, (U8) 2, (U8) 3], [(U8) 1, (U8) 2, (U8) 3]}
+{[1, 2, 3], [1, 2, 3]}
def reverse = fn {
(x) { reverse(x, []) }
([], acc) { acc }
@@ -46,8 +46,8 @@ fn {
([], acc) { acc }
([a | b], acc) { reverse(b, [a | acc]) }
}
-reverse([(U8) 1, (U8) 2, (U8) 3])
-[(U8) 3, (U8) 2, (U8) 1]
+reverse([1, 2, 3])
+[3, 2, 1]
def reverse = fn {
(x) { reverse(x, []) }
([], acc) { [:reversed | acc] }
@@ -60,8 +60,8 @@ fn {
([], acc) { [:reversed | acc] }
([a | b], acc) { reverse(b, [a | acc]) }
}
-reverse([(U8) 1, (U8) 2, (U8) 3])
-[:reversed, (U8) 3, (U8) 2, (U8) 1]
+reverse([1, 2, 3])
+[:reversed, 3, 2, 1]
def reverse = fn {
(x) { reverse(x, []) }
([], acc) { acc }
@@ -74,5 +74,5 @@ fn {
([], acc) { acc }
([a | b], acc) { reverse(b, [a | acc]) }
}
-reverse([(U8) 1, (U8) 2, (U8) 3])
-[(U8) 3, (U8) 2, (U8) 1]
+reverse([1, 2, 3])
+[3, 2, 1]
diff --git a/test/ikc3/defmodule.out.expected b/test/ikc3/defmodule.out.expected
index e046489..d88f9d4 100644
--- a/test/ikc3/defmodule.out.expected
+++ b/test/ikc3/defmodule.out.expected
@@ -1,31 +1,31 @@
defmodule Empty do end
Empty
defmodule Const do
- def a = (U8) 1
+ def a = 1
def b = 10000000000000000000000000000000000000000000000000
end
Const
Const.a
-(U8) 1
+1
Const.b
10000000000000000000000000000000000000000000000000
defmodule Double do
- def double = fn (x) { x * (U8) 2 }
+ def double = fn (x) { x * 2 }
end
Double
-Double.double((U8) 21)
-(U16) 42
+Double.double(21)
+42
defmodule Plop do
- def a = (U8) 1
+ def a = 1
def b = fn () { a }
end
Plop
Plop.a
-(U8) 1
+1
Plop.b
Plop.fn () { a }
Plop.b()
-(U8) 1
+1
defmodule S32 do
def cast = cfn S32 "s32_init_cast" (Result, Sym, Tag)
end
diff --git a/test/ikc3/defoperator.out.expected b/test/ikc3/defoperator.out.expected
index 3db0336..5a32f3e 100644
--- a/test/ikc3/defoperator.out.expected
+++ b/test/ikc3/defoperator.out.expected
@@ -1,10 +1,10 @@
%KC3.Operator{}
-%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: (U8) 0, operator_associativity: :left}
-def operator_muul = %KC3.Operator{sym: :****, symbol_value: cfn Tag "tag_mul" (Tag, Tag, Result), operator_precedence: (U8) 11, operator_associativity: :left}
+%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: 0, operator_associativity: :left}
+def operator_muul = %KC3.Operator{sym: :****, symbol_value: cfn Tag "tag_mul" (Tag, Tag, Result), operator_precedence: 11, operator_associativity: :left}
operator_muul
-(U8) 4 **** (U8) 4
-(U16) 16
-(U8) 4 **** (U8) 4 **** (U8) 4
-(U32) 64
-(U8) 4 **** (U8) 4 + (U8) 4
-(U16) 20
+4 **** 4
+16
+4 **** 4 **** 4
+64
+4 **** 4 + 4
+20
diff --git a/test/ikc3/defstruct.out.expected b/test/ikc3/defstruct.out.expected
index 076bcbd..16219c3 100644
--- a/test/ikc3/defstruct.out.expected
+++ b/test/ikc3/defstruct.out.expected
@@ -1,6 +1,6 @@
defmodule Test do
- defstruct [a: (U8) 1, b: (U8) 2]
+ defstruct [a: 1, b: 2]
end
Test
%Test{}
-%Test{a: (U8) 1, b: (U8) 2}
+%Test{a: 1, b: 2}
diff --git a/test/ikc3/equal.out.expected b/test/ikc3/equal.out.expected
index 8774d47..c46aff7 100644
--- a/test/ikc3/equal.out.expected
+++ b/test/ikc3/equal.out.expected
@@ -1,4 +1,4 @@
-(U8) 1
-(U8) 1
-(U8) 2
-[(U8) 1, (U8) 2]
+1
+1
+2
+[1, 2]
diff --git a/test/ikc3/fn.out.expected b/test/ikc3/fn.out.expected
index 96f5da8..b35f792 100644
--- a/test/ikc3/fn.out.expected
+++ b/test/ikc3/fn.out.expected
@@ -8,22 +8,22 @@ fn {
}
fn (x) do
"Hello, world !"
- x * (U8) 2
+ x * 2
end
fn (x) { x }
-(U8) 1
+1
fn (x, _y) { x }
-(U8) 1
+1
fn ([x | _y]) { x }
-(U8) 1
+1
fn {
([]) { :error }
([x | _y]) { x }
(_) { :error2 }
}
-(U8) 1
+1
fn (x) do
"Hello, world !"
- x * (U8) 2
+ x * 2
end
-(U16) 4
+4
diff --git a/test/ikc3/if.out.expected b/test/ikc3/if.out.expected
index 3cc4701..49a8850 100644
--- a/test/ikc3/if.out.expected
+++ b/test/ikc3/if.out.expected
@@ -1,36 +1,36 @@
if true do
- (U8) 1
+ 1
else
- (U8) 2
+ 2
end
-(U8) 1
+1
if true do
- (U8) 1
+ 1
end
-(U8) 1
+1
if false do
- (U8) 1
+ 1
else
- (U8) 2
+ 2
end
-(U8) 2
+2
if false do
- (U8) 1
+ 1
end
void
if true && true do
- (U8) 1 + (U8) 1
- (U8) 2 + (U8) 2
+ 1 + 1
+ 2 + 2
else
- (U8) 3 + (U8) 3
- (U8) 4 + (U8) 4
+ 3 + 3
+ 4 + 4
end
-(U8) 4
+4
if true && false do
- (U8) 1 + (U8) 1
- (U8) 2 + (U8) 2
+ 1 + 1
+ 2 + 2
else
- (U8) 3 + (U8) 3
- (U8) 4 + (U8) 4
+ 3 + 3
+ 4 + 4
end
-(U8) 8
+8
diff --git a/test/ikc3/integer.out.expected b/test/ikc3/integer.out.expected
index 1190bb1..b534195 100644
--- a/test/ikc3/integer.out.expected
+++ b/test/ikc3/integer.out.expected
@@ -10,62 +10,62 @@
-9223372036854775808
-9223372036854775808
-9223372036854775808
-(S64) -9223372036854775807
-(S64) -9223372036854775807
-(S64) -9223372036854775807
-(S64) -9223372036854775807
-(S64) -2147483648
-(S64) -2147483648
-(S64) -2147483648
-(S64) -2147483648
-(S32) -2147483647
-(S32) -2147483647
-(S32) -2147483647
-(S32) -2147483647
-(S32) -32768
-(S32) -32768
-(S32) -32768
-(S32) -32768
-(S16) -32767
-(S16) -32767
-(S16) -32767
-(S16) -32767
-(S16) -128
-(S16) -128
-(S16) -128
-(S16) -128
-(S8) -127
-(S8) -127
-(S8) -127
-(S8) -127
-(U8) 255
-(U8) 255
-(U8) 255
-(U8) 255
-(U16) 256
-(U16) 256
-(U16) 256
-(U16) 256
-(U16) 65535
-(U16) 65535
-(U16) 65535
-(U16) 65535
-(U32) 65536
-(U32) 65536
-(U32) 65536
-(U32) 65536
-(U32) 4294967295
-(U32) 4294967295
-(U32) 4294967295
-(U32) 4294967295
-(U64) 4294967296
-(U64) 4294967296
-(U64) 4294967296
-(U64) 4294967296
-(U64) 18446744073709551615
-(U64) 18446744073709551615
-(U64) 18446744073709551615
-(U64) 18446744073709551615
+-9223372036854775807
+-9223372036854775807
+-9223372036854775807
+-9223372036854775807
+-2147483648
+-2147483648
+-2147483648
+-2147483648
+-2147483647
+-2147483647
+-2147483647
+-2147483647
+-32768
+-32768
+-32768
+-32768
+-32767
+-32767
+-32767
+-32767
+-128
+-128
+-128
+-128
+-127
+-127
+-127
+-127
+255
+255
+255
+255
+256
+256
+256
+256
+65535
+65535
+65535
+65535
+65536
+65536
+65536
+65536
+4294967295
+4294967295
+4294967295
+4294967295
+4294967296
+4294967296
+4294967296
+4294967296
+18446744073709551615
+18446744073709551615
+18446744073709551615
+18446744073709551615
18446744073709551616
18446744073709551616
18446744073709551616
diff --git a/test/ikc3/integer_add.out.expected b/test/ikc3/integer_add.out.expected
index 9a16453..3db7f46 100644
--- a/test/ikc3/integer_add.out.expected
+++ b/test/ikc3/integer_add.out.expected
@@ -4,33 +4,33 @@
-340282366920938463463374607431768211455
-170141183460469231731687303715884105728 + -9223372036854775808
-170141183460469231740910675752738881536
--170141183460469231731687303715884105728 + (S64) -9223372036854775807
+-170141183460469231731687303715884105728 + -9223372036854775807
-170141183460469231740910675752738881535
--170141183460469231731687303715884105728 + (S64) -2147483648
+-170141183460469231731687303715884105728 + -2147483648
-170141183460469231731687303718031589376
--170141183460469231731687303715884105728 + (S32) -2147483647
+-170141183460469231731687303715884105728 + -2147483647
-170141183460469231731687303718031589375
--170141183460469231731687303715884105728 + (S32) -32768
+-170141183460469231731687303715884105728 + -32768
-170141183460469231731687303715884138496
--170141183460469231731687303715884105728 + (S16) -32767
+-170141183460469231731687303715884105728 + -32767
-170141183460469231731687303715884138495
--170141183460469231731687303715884105728 + (S16) -128
+-170141183460469231731687303715884105728 + -128
-170141183460469231731687303715884105856
--170141183460469231731687303715884105728 + (S8) -127
+-170141183460469231731687303715884105728 + -127
-170141183460469231731687303715884105855
--170141183460469231731687303715884105728 + (U8) 255
+-170141183460469231731687303715884105728 + 255
-170141183460469231731687303715884105473
--170141183460469231731687303715884105728 + (U16) 256
+-170141183460469231731687303715884105728 + 256
-170141183460469231731687303715884105472
--170141183460469231731687303715884105728 + (U16) 65535
+-170141183460469231731687303715884105728 + 65535
-170141183460469231731687303715884040193
--170141183460469231731687303715884105728 + (U32) 65536
+-170141183460469231731687303715884105728 + 65536
-170141183460469231731687303715884040192
--170141183460469231731687303715884105728 + (U32) 4294967295
+-170141183460469231731687303715884105728 + 4294967295
-170141183460469231731687303711589138433
--170141183460469231731687303715884105728 + (U64) 4294967296
+-170141183460469231731687303715884105728 + 4294967296
-170141183460469231731687303711589138432
--170141183460469231731687303715884105728 + (U64) 18446744073709551615
+-170141183460469231731687303715884105728 + 18446744073709551615
-170141183460469231713240559642174554113
-170141183460469231731687303715884105728 + 18446744073709551616
-170141183460469231713240559642174554112
@@ -44,33 +44,33 @@
-340282366920938463463374607431768211454
-170141183460469231731687303715884105727 + -9223372036854775808
-170141183460469231740910675752738881535
--170141183460469231731687303715884105727 + (S64) -9223372036854775807
+-170141183460469231731687303715884105727 + -9223372036854775807
-170141183460469231740910675752738881534
--170141183460469231731687303715884105727 + (S64) -2147483648
+-170141183460469231731687303715884105727 + -2147483648
-170141183460469231731687303718031589375
--170141183460469231731687303715884105727 + (S32) -2147483647
+-170141183460469231731687303715884105727 + -2147483647
-170141183460469231731687303718031589374
--170141183460469231731687303715884105727 + (S32) -32768
+-170141183460469231731687303715884105727 + -32768
-170141183460469231731687303715884138495
--170141183460469231731687303715884105727 + (S16) -32767
+-170141183460469231731687303715884105727 + -32767
-170141183460469231731687303715884138494
--170141183460469231731687303715884105727 + (S16) -128
+-170141183460469231731687303715884105727 + -128
-170141183460469231731687303715884105855
--170141183460469231731687303715884105727 + (S8) -127
+-170141183460469231731687303715884105727 + -127
-170141183460469231731687303715884105854
--170141183460469231731687303715884105727 + (U8) 255
+-170141183460469231731687303715884105727 + 255
-170141183460469231731687303715884105472
--170141183460469231731687303715884105727 + (U16) 256
+-170141183460469231731687303715884105727 + 256
-170141183460469231731687303715884105471
--170141183460469231731687303715884105727 + (U16) 65535
+-170141183460469231731687303715884105727 + 65535
-170141183460469231731687303715884040192
--170141183460469231731687303715884105727 + (U32) 65536
+-170141183460469231731687303715884105727 + 65536
-170141183460469231731687303715884040191
--170141183460469231731687303715884105727 + (U32) 4294967295
+-170141183460469231731687303715884105727 + 4294967295
-170141183460469231731687303711589138432
--170141183460469231731687303715884105727 + (U64) 4294967296
+-170141183460469231731687303715884105727 + 4294967296
-170141183460469231731687303711589138431
--170141183460469231731687303715884105727 + (U64) 18446744073709551615
+-170141183460469231731687303715884105727 + 18446744073709551615
-170141183460469231713240559642174554112
-170141183460469231731687303715884105727 + 18446744073709551616
-170141183460469231713240559642174554111
@@ -84,33 +84,33 @@
-170141183460469231740910675752738881535
-9223372036854775808 + -9223372036854775808
-18446744073709551616
--9223372036854775808 + (S64) -9223372036854775807
+-9223372036854775808 + -9223372036854775807
-18446744073709551615
--9223372036854775808 + (S64) -2147483648
+-9223372036854775808 + -2147483648
-9223372039002259456
--9223372036854775808 + (S32) -2147483647
+-9223372036854775808 + -2147483647
-9223372039002259455
--9223372036854775808 + (S32) -32768
+-9223372036854775808 + -32768
-9223372036854808576
--9223372036854775808 + (S16) -32767
+-9223372036854775808 + -32767
-9223372036854808575
--9223372036854775808 + (S16) -128
+-9223372036854775808 + -128
-9223372036854775936
--9223372036854775808 + (S8) -127
+-9223372036854775808 + -127
-9223372036854775935
--9223372036854775808 + (U8) 255
+-9223372036854775808 + 255
-9223372036854775553
--9223372036854775808 + (U16) 256
+-9223372036854775808 + 256
-9223372036854775552
--9223372036854775808 + (U16) 65535
+-9223372036854775808 + 65535
-9223372036854710273
--9223372036854775808 + (U32) 65536
+-9223372036854775808 + 65536
-9223372036854710272
--9223372036854775808 + (U32) 4294967295
+-9223372036854775808 + 4294967295
-9223372032559808513
--9223372036854775808 + (U64) 4294967296
+-9223372036854775808 + 4294967296
-9223372032559808512
--9223372036854775808 + (U64) 18446744073709551615
+-9223372036854775808 + 18446744073709551615
9223372036854775807
-9223372036854775808 + 18446744073709551616
9223372036854775808
@@ -118,565 +118,565 @@
340282366920938463454151235394913435647
-9223372036854775808 + 340282366920938463463374607431768211456
340282366920938463454151235394913435648
-(S64) -9223372036854775807 + -170141183460469231731687303715884105728
+-9223372036854775807 + -170141183460469231731687303715884105728
-170141183460469231740910675752738881535
-(S64) -9223372036854775807 + -170141183460469231731687303715884105727
+-9223372036854775807 + -170141183460469231731687303715884105727
-170141183460469231740910675752738881534
-(S64) -9223372036854775807 + -9223372036854775808
+-9223372036854775807 + -9223372036854775808
-18446744073709551615
-(S64) -9223372036854775807 + (S64) -9223372036854775807
+-9223372036854775807 + -9223372036854775807
-18446744073709551614
-(S64) -9223372036854775807 + (S64) -2147483648
+-9223372036854775807 + -2147483648
-9223372039002259455
-(S64) -9223372036854775807 + (S32) -2147483647
+-9223372036854775807 + -2147483647
-9223372039002259454
-(S64) -9223372036854775807 + (S32) -32768
+-9223372036854775807 + -32768
-9223372036854808575
-(S64) -9223372036854775807 + (S16) -32767
+-9223372036854775807 + -32767
-9223372036854808574
-(S64) -9223372036854775807 + (S16) -128
+-9223372036854775807 + -128
-9223372036854775935
-(S64) -9223372036854775807 + (S8) -127
+-9223372036854775807 + -127
-9223372036854775934
-(S64) -9223372036854775807 + (U8) 255
-(S64) -9223372036854775552
-(S64) -9223372036854775807 + (U16) 256
-(S64) -9223372036854775551
-(S64) -9223372036854775807 + (U16) 65535
-(S64) -9223372036854710272
-(S64) -9223372036854775807 + (U32) 65536
-(S64) -9223372036854710271
-(S64) -9223372036854775807 + (U32) 4294967295
-(S64) -9223372032559808512
-(S64) -9223372036854775807 + (U64) 4294967296
+-9223372036854775807 + 255
+-9223372036854775552
+-9223372036854775807 + 256
+-9223372036854775551
+-9223372036854775807 + 65535
+-9223372036854710272
+-9223372036854775807 + 65536
+-9223372036854710271
+-9223372036854775807 + 4294967295
+-9223372032559808512
+-9223372036854775807 + 4294967296
-9223372032559808511
-(S64) -9223372036854775807 + (U64) 18446744073709551615
+-9223372036854775807 + 18446744073709551615
9223372036854775808
-(S64) -9223372036854775807 + 18446744073709551616
+-9223372036854775807 + 18446744073709551616
9223372036854775809
-(S64) -9223372036854775807 + 340282366920938463463374607431768211455
+-9223372036854775807 + 340282366920938463463374607431768211455
340282366920938463454151235394913435648
-(S64) -9223372036854775807 + 340282366920938463463374607431768211456
+-9223372036854775807 + 340282366920938463463374607431768211456
340282366920938463454151235394913435649
-(S64) -2147483648 + -170141183460469231731687303715884105728
+-2147483648 + -170141183460469231731687303715884105728
-170141183460469231731687303718031589376
-(S64) -2147483648 + -170141183460469231731687303715884105727
+-2147483648 + -170141183460469231731687303715884105727
-170141183460469231731687303718031589375
-(S64) -2147483648 + -9223372036854775808
+-2147483648 + -9223372036854775808
-9223372039002259456
-(S64) -2147483648 + (S64) -9223372036854775807
+-2147483648 + -9223372036854775807
-9223372039002259455
-(S64) -2147483648 + (S64) -2147483648
+-2147483648 + -2147483648
-4294967296
-(S64) -2147483648 + (S32) -2147483647
+-2147483648 + -2147483647
-4294967295
-(S64) -2147483648 + (S32) -32768
+-2147483648 + -32768
-2147516416
-(S64) -2147483648 + (S16) -32767
+-2147483648 + -32767
-2147516415
-(S64) -2147483648 + (S16) -128
+-2147483648 + -128
-2147483776
-(S64) -2147483648 + (S8) -127
+-2147483648 + -127
-2147483775
-(S64) -2147483648 + (U8) 255
-(S64) -2147483393
-(S64) -2147483648 + (U16) 256
-(S64) -2147483392
-(S64) -2147483648 + (U16) 65535
-(S64) -2147418113
-(S64) -2147483648 + (U32) 65536
-(S64) -2147418112
-(S64) -2147483648 + (U32) 4294967295
-(S64) 2147483647
-(S64) -2147483648 + (U64) 4294967296
+-2147483648 + 255
+-2147483393
+-2147483648 + 256
+-2147483392
+-2147483648 + 65535
+-2147418113
+-2147483648 + 65536
+-2147418112
+-2147483648 + 4294967295
+2147483647
+-2147483648 + 4294967296
2147483648
-(S64) -2147483648 + (U64) 18446744073709551615
+-2147483648 + 18446744073709551615
18446744071562067967
-(S64) -2147483648 + 18446744073709551616
+-2147483648 + 18446744073709551616
18446744071562067968
-(S64) -2147483648 + 340282366920938463463374607431768211455
+-2147483648 + 340282366920938463463374607431768211455
340282366920938463463374607429620727807
-(S64) -2147483648 + 340282366920938463463374607431768211456
+-2147483648 + 340282366920938463463374607431768211456
340282366920938463463374607429620727808
-(S32) -2147483647 + -170141183460469231731687303715884105728
+-2147483647 + -170141183460469231731687303715884105728
-170141183460469231731687303718031589375
-(S32) -2147483647 + -170141183460469231731687303715884105727
+-2147483647 + -170141183460469231731687303715884105727
-170141183460469231731687303718031589374
-(S32) -2147483647 + -9223372036854775808
+-2147483647 + -9223372036854775808
-9223372039002259455
-(S32) -2147483647 + (S64) -9223372036854775807
+-2147483647 + -9223372036854775807
-9223372039002259454
-(S32) -2147483647 + (S64) -2147483648
+-2147483647 + -2147483648
-4294967295
-(S32) -2147483647 + (S32) -2147483647
-(S64) -4294967294
-(S32) -2147483647 + (S32) -32768
-(S64) -2147516415
-(S32) -2147483647 + (S16) -32767
-(S64) -2147516414
-(S32) -2147483647 + (S16) -128
-(S64) -2147483775
-(S32) -2147483647 + (S8) -127
-(S64) -2147483774
-(S32) -2147483647 + (U8) 255
-(S32) -2147483392
-(S32) -2147483647 + (U16) 256
-(S32) -2147483391
-(S32) -2147483647 + (U16) 65535
-(S32) -2147418112
-(S32) -2147483647 + (U32) 65536
-(S32) -2147418111
-(S32) -2147483647 + (U32) 4294967295
-(S64) 2147483648
-(S32) -2147483647 + (U64) 4294967296
+-2147483647 + -2147483647
+-4294967294
+-2147483647 + -32768
+-2147516415
+-2147483647 + -32767
+-2147516414
+-2147483647 + -128
+-2147483775
+-2147483647 + -127
+-2147483774
+-2147483647 + 255
+-2147483392
+-2147483647 + 256
+-2147483391
+-2147483647 + 65535
+-2147418112
+-2147483647 + 65536
+-2147418111
+-2147483647 + 4294967295
+2147483648
+-2147483647 + 4294967296
2147483649
-(S32) -2147483647 + (U64) 18446744073709551615
+-2147483647 + 18446744073709551615
18446744071562067968
-(S32) -2147483647 + 18446744073709551616
+-2147483647 + 18446744073709551616
18446744071562067969
-(S32) -2147483647 + 340282366920938463463374607431768211455
+-2147483647 + 340282366920938463463374607431768211455
340282366920938463463374607429620727808
-(S32) -2147483647 + 340282366920938463463374607431768211456
+-2147483647 + 340282366920938463463374607431768211456
340282366920938463463374607429620727809
-(S32) -32768 + -170141183460469231731687303715884105728
+-32768 + -170141183460469231731687303715884105728
-170141183460469231731687303715884138496
-(S32) -32768 + -170141183460469231731687303715884105727
+-32768 + -170141183460469231731687303715884105727
-170141183460469231731687303715884138495
-(S32) -32768 + -9223372036854775808
+-32768 + -9223372036854775808
-9223372036854808576
-(S32) -32768 + (S64) -9223372036854775807
+-32768 + -9223372036854775807
-9223372036854808575
-(S32) -32768 + (S64) -2147483648
+-32768 + -2147483648
-2147516416
-(S32) -32768 + (S32) -2147483647
-(S64) -2147516415
-(S32) -32768 + (S32) -32768
-(S64) -65536
-(S32) -32768 + (S16) -32767
-(S64) -65535
-(S32) -32768 + (S16) -128
-(S64) -32896
-(S32) -32768 + (S8) -127
-(S64) -32895
-(S32) -32768 + (U8) 255
-(S32) -32513
-(S32) -32768 + (U16) 256
-(S32) -32512
-(S32) -32768 + (U16) 65535
-(S32) 32767
-(S32) -32768 + (U32) 65536
-(S32) 32768
-(S32) -32768 + (U32) 4294967295
-(S64) 4294934527
-(S32) -32768 + (U64) 4294967296
+-32768 + -2147483647
+-2147516415
+-32768 + -32768
+-65536
+-32768 + -32767
+-65535
+-32768 + -128
+-32896
+-32768 + -127
+-32895
+-32768 + 255
+-32513
+-32768 + 256
+-32512
+-32768 + 65535
+32767
+-32768 + 65536
+32768
+-32768 + 4294967295
+4294934527
+-32768 + 4294967296
4294934528
-(S32) -32768 + (U64) 18446744073709551615
+-32768 + 18446744073709551615
18446744073709518847
-(S32) -32768 + 18446744073709551616
+-32768 + 18446744073709551616
18446744073709518848
-(S32) -32768 + 340282366920938463463374607431768211455
+-32768 + 340282366920938463463374607431768211455
340282366920938463463374607431768178687
-(S32) -32768 + 340282366920938463463374607431768211456
+-32768 + 340282366920938463463374607431768211456
340282366920938463463374607431768178688
-(S16) -32767 + -170141183460469231731687303715884105728
+-32767 + -170141183460469231731687303715884105728
-170141183460469231731687303715884138495
-(S16) -32767 + -170141183460469231731687303715884105727
+-32767 + -170141183460469231731687303715884105727
-170141183460469231731687303715884138494
-(S16) -32767 + -9223372036854775808
+-32767 + -9223372036854775808
-9223372036854808575
-(S16) -32767 + (S64) -9223372036854775807
+-32767 + -9223372036854775807
-9223372036854808574
-(S16) -32767 + (S64) -2147483648
+-32767 + -2147483648
-2147516415
-(S16) -32767 + (S32) -2147483647
-(S64) -2147516414
-(S16) -32767 + (S32) -32768
-(S64) -65535
-(S16) -32767 + (S16) -32767
-(S32) -65534
-(S16) -32767 + (S16) -128
-(S32) -32895
-(S16) -32767 + (S8) -127
-(S32) -32894
-(S16) -32767 + (U8) 255
-(S16) -32512
-(S16) -32767 + (U16) 256
-(S16) -32511
-(S16) -32767 + (U16) 65535
-(S32) 32768
-(S16) -32767 + (U32) 65536
-(S64) 32769
-(S16) -32767 + (U32) 4294967295
-(S64) 4294934528
-(S16) -32767 + (U64) 4294967296
+-32767 + -2147483647
+-2147516414
+-32767 + -32768
+-65535
+-32767 + -32767
+-65534
+-32767 + -128
+-32895
+-32767 + -127
+-32894
+-32767 + 255
+-32512
+-32767 + 256
+-32511
+-32767 + 65535
+32768
+-32767 + 65536
+32769
+-32767 + 4294967295
+4294934528
+-32767 + 4294967296
4294934529
-(S16) -32767 + (U64) 18446744073709551615
+-32767 + 18446744073709551615
18446744073709518848
-(S16) -32767 + 18446744073709551616
+-32767 + 18446744073709551616
18446744073709518849
-(S16) -32767 + 340282366920938463463374607431768211455
+-32767 + 340282366920938463463374607431768211455
340282366920938463463374607431768178688
-(S16) -32767 + 340282366920938463463374607431768211456
+-32767 + 340282366920938463463374607431768211456
340282366920938463463374607431768178689
-(S16) -128 + -170141183460469231731687303715884105728
+-128 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105856
-(S16) -128 + -170141183460469231731687303715884105727
+-128 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105855
-(S16) -128 + -9223372036854775808
+-128 + -9223372036854775808
-9223372036854775936
-(S16) -128 + (S64) -9223372036854775807
+-128 + -9223372036854775807
-9223372036854775935
-(S16) -128 + (S64) -2147483648
+-128 + -2147483648
-2147483776
-(S16) -128 + (S32) -2147483647
-(S64) -2147483775
-(S16) -128 + (S32) -32768
-(S64) -32896
-(S16) -128 + (S16) -32767
-(S32) -32895
-(S16) -128 + (S16) -128
-(S32) -256
-(S16) -128 + (S8) -127
-(S32) -255
-(S16) -128 + (U8) 255
-(S16) 127
-(S16) -128 + (U16) 256
-(S16) 128
-(S16) -128 + (U16) 65535
-(S32) 65407
-(S16) -128 + (U32) 65536
-(S64) 65408
-(S16) -128 + (U32) 4294967295
-(S64) 4294967167
-(S16) -128 + (U64) 4294967296
+-128 + -2147483647
+-2147483775
+-128 + -32768
+-32896
+-128 + -32767
+-32895
+-128 + -128
+-256
+-128 + -127
+-255
+-128 + 255
+127
+-128 + 256
+128
+-128 + 65535
+65407
+-128 + 65536
+65408
+-128 + 4294967295
+4294967167
+-128 + 4294967296
4294967168
-(S16) -128 + (U64) 18446744073709551615
+-128 + 18446744073709551615
18446744073709551487
-(S16) -128 + 18446744073709551616
+-128 + 18446744073709551616
18446744073709551488
-(S16) -128 + 340282366920938463463374607431768211455
+-128 + 340282366920938463463374607431768211455
340282366920938463463374607431768211327
-(S16) -128 + 340282366920938463463374607431768211456
+-128 + 340282366920938463463374607431768211456
340282366920938463463374607431768211328
-(S8) -127 + -170141183460469231731687303715884105728
+-127 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105855
-(S8) -127 + -170141183460469231731687303715884105727
+-127 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105854
-(S8) -127 + -9223372036854775808
+-127 + -9223372036854775808
-9223372036854775935
-(S8) -127 + (S64) -9223372036854775807
+-127 + -9223372036854775807
-9223372036854775934
-(S8) -127 + (S64) -2147483648
+-127 + -2147483648
-2147483775
-(S8) -127 + (S32) -2147483647
-(S64) -2147483774
-(S8) -127 + (S32) -32768
-(S64) -32895
-(S8) -127 + (S16) -32767
-(S32) -32894
-(S8) -127 + (S16) -128
-(S32) -255
-(S8) -127 + (S8) -127
-(S16) -254
-(S8) -127 + (U8) 255
-(S16) 128
-(S8) -127 + (U16) 256
-(S32) 129
-(S8) -127 + (U16) 65535
-(S32) 65408
-(S8) -127 + (U32) 65536
-(S32) 65409
-(S8) -127 + (U32) 4294967295
-(S64) 4294967168
-(S8) -127 + (U64) 4294967296
+-127 + -2147483647
+-2147483774
+-127 + -32768
+-32895
+-127 + -32767
+-32894
+-127 + -128
+-255
+-127 + -127
+-254
+-127 + 255
+128
+-127 + 256
+129
+-127 + 65535
+65408
+-127 + 65536
+65409
+-127 + 4294967295
+4294967168
+-127 + 4294967296
4294967169
-(S8) -127 + (U64) 18446744073709551615
+-127 + 18446744073709551615
18446744073709551488
-(S8) -127 + 18446744073709551616
+-127 + 18446744073709551616
18446744073709551489
-(S8) -127 + 340282366920938463463374607431768211455
+-127 + 340282366920938463463374607431768211455
340282366920938463463374607431768211328
-(S8) -127 + 340282366920938463463374607431768211456
+-127 + 340282366920938463463374607431768211456
340282366920938463463374607431768211329
-(U8) 255 + -170141183460469231731687303715884105728
+255 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105473
-(U8) 255 + -170141183460469231731687303715884105727
+255 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105472
-(U8) 255 + -9223372036854775808
+255 + -9223372036854775808
-9223372036854775553
-(U8) 255 + (S64) -9223372036854775807
+255 + -9223372036854775807
-9223372036854775552
-(U8) 255 + (S64) -2147483648
+255 + -2147483648
-2147483393
-(U8) 255 + (S32) -2147483647
-(S64) -2147483392
-(U8) 255 + (S32) -32768
-(S64) -32513
-(U8) 255 + (S16) -32767
-(S16) -32512
-(U8) 255 + (S16) -128
-(S16) 127
-(U8) 255 + (S8) -127
-(S16) 128
-(U8) 255 + (U8) 255
-(U16) 510
-(U8) 255 + (U16) 256
-(U16) 511
-(U8) 255 + (U16) 65535
-(U32) 65790
-(U8) 255 + (U32) 65536
-(U32) 65791
-(U8) 255 + (U32) 4294967295
-(U64) 4294967550
-(U8) 255 + (U64) 4294967296
-(U64) 4294967551
-(U8) 255 + (U64) 18446744073709551615
+255 + -2147483647
+-2147483392
+255 + -32768
+-32513
+255 + -32767
+-32512
+255 + -128
+127
+255 + -127
+128
+255 + 255
+510
+255 + 256
+511
+255 + 65535
+65790
+255 + 65536
+65791
+255 + 4294967295
+4294967550
+255 + 4294967296
+4294967551
+255 + 18446744073709551615
18446744073709551870
-(U8) 255 + 18446744073709551616
+255 + 18446744073709551616
18446744073709551871
-(U8) 255 + 340282366920938463463374607431768211455
+255 + 340282366920938463463374607431768211455
340282366920938463463374607431768211710
-(U8) 255 + 340282366920938463463374607431768211456
+255 + 340282366920938463463374607431768211456
340282366920938463463374607431768211711
-(U16) 256 + -170141183460469231731687303715884105728
+256 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105472
-(U16) 256 + -170141183460469231731687303715884105727
+256 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105471
-(U16) 256 + -9223372036854775808
+256 + -9223372036854775808
-9223372036854775552
-(U16) 256 + (S64) -9223372036854775807
+256 + -9223372036854775807
-9223372036854775551
-(U16) 256 + (S64) -2147483648
+256 + -2147483648
-2147483392
-(U16) 256 + (S32) -2147483647
-(S64) -2147483391
-(U16) 256 + (S32) -32768
-(S64) -32512
-(U16) 256 + (S16) -32767
-(S16) -32511
-(U16) 256 + (S16) -128
-(S16) 128
-(U16) 256 + (S8) -127
-(S16) 129
-(U16) 256 + (U8) 255
-(U16) 511
-(U16) 256 + (U16) 256
-(U16) 512
-(U16) 256 + (U16) 65535
-(U32) 65791
-(U16) 256 + (U32) 65536
-(U32) 65792
-(U16) 256 + (U32) 4294967295
-(U64) 4294967551
-(U16) 256 + (U64) 4294967296
-(U64) 4294967552
-(U16) 256 + (U64) 18446744073709551615
+256 + -2147483647
+-2147483391
+256 + -32768
+-32512
+256 + -32767
+-32511
+256 + -128
+128
+256 + -127
+129
+256 + 255
+511
+256 + 256
+512
+256 + 65535
+65791
+256 + 65536
+65792
+256 + 4294967295
+4294967551
+256 + 4294967296
+4294967552
+256 + 18446744073709551615
18446744073709551871
-(U16) 256 + 18446744073709551616
+256 + 18446744073709551616
18446744073709551872
-(U16) 256 + 340282366920938463463374607431768211455
+256 + 340282366920938463463374607431768211455
340282366920938463463374607431768211711
-(U16) 256 + 340282366920938463463374607431768211456
+256 + 340282366920938463463374607431768211456
340282366920938463463374607431768211712
-(U16) 65535 + -170141183460469231731687303715884105728
+65535 + -170141183460469231731687303715884105728
-170141183460469231731687303715884040193
-(U16) 65535 + -170141183460469231731687303715884105727
+65535 + -170141183460469231731687303715884105727
-170141183460469231731687303715884040192
-(U16) 65535 + -9223372036854775808
+65535 + -9223372036854775808
-9223372036854710273
-(U16) 65535 + (S64) -9223372036854775807
+65535 + -9223372036854775807
-9223372036854710272
-(U16) 65535 + (S64) -2147483648
+65535 + -2147483648
-2147418113
-(U16) 65535 + (S32) -2147483647
-(S64) -2147418112
-(U16) 65535 + (S32) -32768
-(S64) 32767
-(U16) 65535 + (S16) -32767
-(S32) 32768
-(U16) 65535 + (S16) -128
-(S32) 65407
-(U16) 65535 + (S8) -127
-(S32) 65408
-(U16) 65535 + (U8) 255
-(U32) 65790
-(U16) 65535 + (U16) 256
-(U32) 65791
-(U16) 65535 + (U16) 65535
-(U32) 131070
-(U16) 65535 + (U32) 65536
-(U32) 131071
-(U16) 65535 + (U32) 4294967295
-(U64) 4295032830
-(U16) 65535 + (U64) 4294967296
-(U64) 4295032831
-(U16) 65535 + (U64) 18446744073709551615
+65535 + -2147483647
+-2147418112
+65535 + -32768
+32767
+65535 + -32767
+32768
+65535 + -128
+65407
+65535 + -127
+65408
+65535 + 255
+65790
+65535 + 256
+65791
+65535 + 65535
+131070
+65535 + 65536
+131071
+65535 + 4294967295
+4295032830
+65535 + 4294967296
+4295032831
+65535 + 18446744073709551615
18446744073709617150
-(U16) 65535 + 18446744073709551616
+65535 + 18446744073709551616
18446744073709617151
-(U16) 65535 + 340282366920938463463374607431768211455
+65535 + 340282366920938463463374607431768211455
340282366920938463463374607431768276990
-(U16) 65535 + 340282366920938463463374607431768211456
+65535 + 340282366920938463463374607431768211456
340282366920938463463374607431768276991
-(U32) 65536 + -170141183460469231731687303715884105728
+65536 + -170141183460469231731687303715884105728
-170141183460469231731687303715884040192
-(U32) 65536 + -170141183460469231731687303715884105727
+65536 + -170141183460469231731687303715884105727
-170141183460469231731687303715884040191
-(U32) 65536 + -9223372036854775808
+65536 + -9223372036854775808
-9223372036854710272
-(U32) 65536 + (S64) -9223372036854775807
+65536 + -9223372036854775807
-9223372036854710271
-(U32) 65536 + (S64) -2147483648
+65536 + -2147483648
-2147418112
-(U32) 65536 + (S32) -2147483647
-(S64) -2147418111
-(U32) 65536 + (S32) -32768
-(S64) 32768
-(U32) 65536 + (S16) -32767
-(S64) 32769
-(U32) 65536 + (S16) -128
-(S64) 65408
-(U32) 65536 + (S8) -127
-(S64) 65409
-(U32) 65536 + (U8) 255
-(U32) 65791
-(U32) 65536 + (U16) 256
-(U32) 65792
-(U32) 65536 + (U16) 65535
-(U32) 131071
-(U32) 65536 + (U32) 65536
-(U32) 131072
-(U32) 65536 + (U32) 4294967295
-(U64) 4295032831
-(U32) 65536 + (U64) 4294967296
-(U64) 4295032832
-(U32) 65536 + (U64) 18446744073709551615
+65536 + -2147483647
+-2147418111
+65536 + -32768
+32768
+65536 + -32767
+32769
+65536 + -128
+65408
+65536 + -127
+65409
+65536 + 255
+65791
+65536 + 256
+65792
+65536 + 65535
+131071
+65536 + 65536
+131072
+65536 + 4294967295
+4295032831
+65536 + 4294967296
+4295032832
+65536 + 18446744073709551615
18446744073709617151
-(U32) 65536 + 18446744073709551616
+65536 + 18446744073709551616
18446744073709617152
-(U32) 65536 + 340282366920938463463374607431768211455
+65536 + 340282366920938463463374607431768211455
340282366920938463463374607431768276991
-(U32) 65536 + 340282366920938463463374607431768211456
+65536 + 340282366920938463463374607431768211456
340282366920938463463374607431768276992
-(U32) 4294967295 + -170141183460469231731687303715884105728
+4294967295 + -170141183460469231731687303715884105728
-170141183460469231731687303711589138433
-(U32) 4294967295 + -170141183460469231731687303715884105727
+4294967295 + -170141183460469231731687303715884105727
-170141183460469231731687303711589138432
-(U32) 4294967295 + -9223372036854775808
+4294967295 + -9223372036854775808
-9223372032559808513
-(U32) 4294967295 + (S64) -9223372036854775807
+4294967295 + -9223372036854775807
-9223372032559808512
-(U32) 4294967295 + (S64) -2147483648
+4294967295 + -2147483648
2147483647
-(U32) 4294967295 + (S32) -2147483647
-(S64) 2147483648
-(U32) 4294967295 + (S32) -32768
-(S64) 4294934527
-(U32) 4294967295 + (S16) -32767
-(S64) 4294934528
-(U32) 4294967295 + (S16) -128
-(S64) 4294967167
-(U32) 4294967295 + (S8) -127
-(S64) 4294967168
-(U32) 4294967295 + (U8) 255
-(U64) 4294967550
-(U32) 4294967295 + (U16) 256
-(U64) 4294967551
-(U32) 4294967295 + (U16) 65535
-(U64) 4295032830
-(U32) 4294967295 + (U32) 65536
-(U64) 4295032831
-(U32) 4294967295 + (U32) 4294967295
-(U64) 8589934590
-(U32) 4294967295 + (U64) 4294967296
-(U64) 8589934591
-(U32) 4294967295 + (U64) 18446744073709551615
+4294967295 + -2147483647
+2147483648
+4294967295 + -32768
+4294934527
+4294967295 + -32767
+4294934528
+4294967295 + -128
+4294967167
+4294967295 + -127
+4294967168
+4294967295 + 255
+4294967550
+4294967295 + 256
+4294967551
+4294967295 + 65535
+4295032830
+4294967295 + 65536
+4295032831
+4294967295 + 4294967295
+8589934590
+4294967295 + 4294967296
+8589934591
+4294967295 + 18446744073709551615
18446744078004518910
-(U32) 4294967295 + 18446744073709551616
+4294967295 + 18446744073709551616
18446744078004518911
-(U32) 4294967295 + 340282366920938463463374607431768211455
+4294967295 + 340282366920938463463374607431768211455
340282366920938463463374607436063178750
-(U32) 4294967295 + 340282366920938463463374607431768211456
+4294967295 + 340282366920938463463374607431768211456
340282366920938463463374607436063178751
-(U64) 4294967296 + -170141183460469231731687303715884105728
+4294967296 + -170141183460469231731687303715884105728
-170141183460469231731687303711589138432
-(U64) 4294967296 + -170141183460469231731687303715884105727
+4294967296 + -170141183460469231731687303715884105727
-170141183460469231731687303711589138431
-(U64) 4294967296 + -9223372036854775808
+4294967296 + -9223372036854775808
-9223372032559808512
-(U64) 4294967296 + (S64) -9223372036854775807
+4294967296 + -9223372036854775807
-9223372032559808511
-(U64) 4294967296 + (S64) -2147483648
+4294967296 + -2147483648
2147483648
-(U64) 4294967296 + (S32) -2147483647
+4294967296 + -2147483647
2147483649
-(U64) 4294967296 + (S32) -32768
+4294967296 + -32768
4294934528
-(U64) 4294967296 + (S16) -32767
+4294967296 + -32767
4294934529
-(U64) 4294967296 + (S16) -128
+4294967296 + -128
4294967168
-(U64) 4294967296 + (S8) -127
+4294967296 + -127
4294967169
-(U64) 4294967296 + (U8) 255
-(U64) 4294967551
-(U64) 4294967296 + (U16) 256
-(U64) 4294967552
-(U64) 4294967296 + (U16) 65535
-(U64) 4295032831
-(U64) 4294967296 + (U32) 65536
-(U64) 4295032832
-(U64) 4294967296 + (U32) 4294967295
-(U64) 8589934591
-(U64) 4294967296 + (U64) 4294967296
-(U64) 8589934592
-(U64) 4294967296 + (U64) 18446744073709551615
+4294967296 + 255
+4294967551
+4294967296 + 256
+4294967552
+4294967296 + 65535
+4295032831
+4294967296 + 65536
+4295032832
+4294967296 + 4294967295
+8589934591
+4294967296 + 4294967296
+8589934592
+4294967296 + 18446744073709551615
18446744078004518911
-(U64) 4294967296 + 18446744073709551616
+4294967296 + 18446744073709551616
18446744078004518912
-(U64) 4294967296 + 340282366920938463463374607431768211455
+4294967296 + 340282366920938463463374607431768211455
340282366920938463463374607436063178751
-(U64) 4294967296 + 340282366920938463463374607431768211456
+4294967296 + 340282366920938463463374607431768211456
340282366920938463463374607436063178752
-(U64) 18446744073709551615 + -170141183460469231731687303715884105728
+18446744073709551615 + -170141183460469231731687303715884105728
-170141183460469231713240559642174554113
-(U64) 18446744073709551615 + -170141183460469231731687303715884105727
+18446744073709551615 + -170141183460469231731687303715884105727
-170141183460469231713240559642174554112
-(U64) 18446744073709551615 + -9223372036854775808
+18446744073709551615 + -9223372036854775808
9223372036854775807
-(U64) 18446744073709551615 + (S64) -9223372036854775807
+18446744073709551615 + -9223372036854775807
9223372036854775808
-(U64) 18446744073709551615 + (S64) -2147483648
+18446744073709551615 + -2147483648
18446744071562067967
-(U64) 18446744073709551615 + (S32) -2147483647
+18446744073709551615 + -2147483647
18446744071562067968
-(U64) 18446744073709551615 + (S32) -32768
+18446744073709551615 + -32768
18446744073709518847
-(U64) 18446744073709551615 + (S16) -32767
+18446744073709551615 + -32767
18446744073709518848
-(U64) 18446744073709551615 + (S16) -128
+18446744073709551615 + -128
18446744073709551487
-(U64) 18446744073709551615 + (S8) -127
+18446744073709551615 + -127
18446744073709551488
-(U64) 18446744073709551615 + (U8) 255
+18446744073709551615 + 255
18446744073709551870
-(U64) 18446744073709551615 + (U16) 256
+18446744073709551615 + 256
18446744073709551871
-(U64) 18446744073709551615 + (U16) 65535
+18446744073709551615 + 65535
18446744073709617150
-(U64) 18446744073709551615 + (U32) 65536
+18446744073709551615 + 65536
18446744073709617151
-(U64) 18446744073709551615 + (U32) 4294967295
+18446744073709551615 + 4294967295
18446744078004518910
-(U64) 18446744073709551615 + (U64) 4294967296
+18446744073709551615 + 4294967296
18446744078004518911
-(U64) 18446744073709551615 + (U64) 18446744073709551615
+18446744073709551615 + 18446744073709551615
36893488147419103230
-(U64) 18446744073709551615 + 18446744073709551616
+18446744073709551615 + 18446744073709551616
36893488147419103231
-(U64) 18446744073709551615 + 340282366920938463463374607431768211455
+18446744073709551615 + 340282366920938463463374607431768211455
340282366920938463481821351505477763070
-(U64) 18446744073709551615 + 340282366920938463463374607431768211456
+18446744073709551615 + 340282366920938463463374607431768211456
340282366920938463481821351505477763071
18446744073709551616 + -170141183460469231731687303715884105728
-170141183460469231713240559642174554112
@@ -684,33 +684,33 @@
-170141183460469231713240559642174554111
18446744073709551616 + -9223372036854775808
9223372036854775808
-18446744073709551616 + (S64) -9223372036854775807
+18446744073709551616 + -9223372036854775807
9223372036854775809
-18446744073709551616 + (S64) -2147483648
+18446744073709551616 + -2147483648
18446744071562067968
-18446744073709551616 + (S32) -2147483647
+18446744073709551616 + -2147483647
18446744071562067969
-18446744073709551616 + (S32) -32768
+18446744073709551616 + -32768
18446744073709518848
-18446744073709551616 + (S16) -32767
+18446744073709551616 + -32767
18446744073709518849
-18446744073709551616 + (S16) -128
+18446744073709551616 + -128
18446744073709551488
-18446744073709551616 + (S8) -127
+18446744073709551616 + -127
18446744073709551489
-18446744073709551616 + (U8) 255
+18446744073709551616 + 255
18446744073709551871
-18446744073709551616 + (U16) 256
+18446744073709551616 + 256
18446744073709551872
-18446744073709551616 + (U16) 65535
+18446744073709551616 + 65535
18446744073709617151
-18446744073709551616 + (U32) 65536
+18446744073709551616 + 65536
18446744073709617152
-18446744073709551616 + (U32) 4294967295
+18446744073709551616 + 4294967295
18446744078004518911
-18446744073709551616 + (U64) 4294967296
+18446744073709551616 + 4294967296
18446744078004518912
-18446744073709551616 + (U64) 18446744073709551615
+18446744073709551616 + 18446744073709551615
36893488147419103231
18446744073709551616 + 18446744073709551616
36893488147419103232
@@ -724,33 +724,33 @@
170141183460469231731687303715884105728
340282366920938463463374607431768211455 + -9223372036854775808
340282366920938463454151235394913435647
-340282366920938463463374607431768211455 + (S64) -9223372036854775807
+340282366920938463463374607431768211455 + -9223372036854775807
340282366920938463454151235394913435648
-340282366920938463463374607431768211455 + (S64) -2147483648
+340282366920938463463374607431768211455 + -2147483648
340282366920938463463374607429620727807
-340282366920938463463374607431768211455 + (S32) -2147483647
+340282366920938463463374607431768211455 + -2147483647
340282366920938463463374607429620727808
-340282366920938463463374607431768211455 + (S32) -32768
+340282366920938463463374607431768211455 + -32768
340282366920938463463374607431768178687
-340282366920938463463374607431768211455 + (S16) -32767
+340282366920938463463374607431768211455 + -32767
340282366920938463463374607431768178688
-340282366920938463463374607431768211455 + (S16) -128
+340282366920938463463374607431768211455 + -128
340282366920938463463374607431768211327
-340282366920938463463374607431768211455 + (S8) -127
+340282366920938463463374607431768211455 + -127
340282366920938463463374607431768211328
-340282366920938463463374607431768211455 + (U8) 255
+340282366920938463463374607431768211455 + 255
340282366920938463463374607431768211710
-340282366920938463463374607431768211455 + (U16) 256
+340282366920938463463374607431768211455 + 256
340282366920938463463374607431768211711
-340282366920938463463374607431768211455 + (U16) 65535
+340282366920938463463374607431768211455 + 65535
340282366920938463463374607431768276990
-340282366920938463463374607431768211455 + (U32) 65536
+340282366920938463463374607431768211455 + 65536
340282366920938463463374607431768276991
-340282366920938463463374607431768211455 + (U32) 4294967295
+340282366920938463463374607431768211455 + 4294967295
340282366920938463463374607436063178750
-340282366920938463463374607431768211455 + (U64) 4294967296
+340282366920938463463374607431768211455 + 4294967296
340282366920938463463374607436063178751
-340282366920938463463374607431768211455 + (U64) 18446744073709551615
+340282366920938463463374607431768211455 + 18446744073709551615
340282366920938463481821351505477763070
340282366920938463463374607431768211455 + 18446744073709551616
340282366920938463481821351505477763071
@@ -764,33 +764,33 @@
170141183460469231731687303715884105729
340282366920938463463374607431768211456 + -9223372036854775808
340282366920938463454151235394913435648
-340282366920938463463374607431768211456 + (S64) -9223372036854775807
+340282366920938463463374607431768211456 + -9223372036854775807
340282366920938463454151235394913435649
-340282366920938463463374607431768211456 + (S64) -2147483648
+340282366920938463463374607431768211456 + -2147483648
340282366920938463463374607429620727808
-340282366920938463463374607431768211456 + (S32) -2147483647
+340282366920938463463374607431768211456 + -2147483647
340282366920938463463374607429620727809
-340282366920938463463374607431768211456 + (S32) -32768
+340282366920938463463374607431768211456 + -32768
340282366920938463463374607431768178688
-340282366920938463463374607431768211456 + (S16) -32767
+340282366920938463463374607431768211456 + -32767
340282366920938463463374607431768178689
-340282366920938463463374607431768211456 + (S16) -128
+340282366920938463463374607431768211456 + -128
340282366920938463463374607431768211328
-340282366920938463463374607431768211456 + (S8) -127
+340282366920938463463374607431768211456 + -127
340282366920938463463374607431768211329
-340282366920938463463374607431768211456 + (U8) 255
+340282366920938463463374607431768211456 + 255
340282366920938463463374607431768211711
-340282366920938463463374607431768211456 + (U16) 256
+340282366920938463463374607431768211456 + 256
340282366920938463463374607431768211712
-340282366920938463463374607431768211456 + (U16) 65535
+340282366920938463463374607431768211456 + 65535
340282366920938463463374607431768276991
-340282366920938463463374607431768211456 + (U32) 65536
+340282366920938463463374607431768211456 + 65536
340282366920938463463374607431768276992
-340282366920938463463374607431768211456 + (U32) 4294967295
+340282366920938463463374607431768211456 + 4294967295
340282366920938463463374607436063178751
-340282366920938463463374607431768211456 + (U64) 4294967296
+340282366920938463463374607431768211456 + 4294967296
340282366920938463463374607436063178752
-340282366920938463463374607431768211456 + (U64) 18446744073709551615
+340282366920938463463374607431768211456 + 18446744073709551615
340282366920938463481821351505477763071
340282366920938463463374607431768211456 + 18446744073709551616
340282366920938463481821351505477763072
diff --git a/test/ikc3/str.out.expected b/test/ikc3/str.out.expected
index 6a9aa7c..bb6f431 100644
--- a/test/ikc3/str.out.expected
+++ b/test/ikc3/str.out.expected
@@ -31,9 +31,9 @@
"abc\ndef\n"
"abc\ndef"
"abc\ndef"
-"1 + 2 = #{1 + 2}"
+"1 + 2 = #{(U8) 1 + (U8) 2}"
"1 + 2 = 3"
-"#{%{a: 1, b: 2}}"
+"#{%{a: (U8) 1, b: (U8) 2}}"
"%{a: (U8) 1, b: (U8) 2}"
"#{%KC3.Operator{}}"
"%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: (U8) 0, operator_associativity: :left}"