Fix polymorphic element types usage; Empty union as opaque type

This commit is contained in:
Ginger Bill
2017-07-20 19:40:51 +01:00
parent 13bc6eeea4
commit 9a3b4167bb
14 changed files with 228 additions and 170 deletions
+13 -1
View File
@@ -314,7 +314,6 @@ copy :: proc(dst, src: $T/[]$E) -> int #cc_contextless {
}
append :: proc(array: ^$T/[]$E, args: ...E) -> int #cc_contextless {
if array == nil do return 0;
@@ -356,6 +355,19 @@ append :: proc(array: ^$T/[dynamic]$E, args: ...E) -> int {
return len(array);
}
append :: proc(array: ^$T/[]u8, args: ...string) -> int {
for arg in args {
append(array, ...cast([]u8)arg);
}
return len(array);
}
append :: proc(array: ^$T/[dynamic]u8, args: ...string) -> int {
for arg in args {
append(array, ...cast([]u8)arg);
}
return len(array);
}
pop :: proc(array: ^$T/[]$E) -> E #cc_contextless {
if array == nil do return E{};
assert(len(array) > 0);