diff --git a/lib/std/collections/list.c3 b/lib/std/collections/list.c3 index 3dc3bfc31..bf29dc88d 100644 --- a/lib/std/collections/list.c3 +++ b/lib/std/collections/list.c3 @@ -129,11 +129,8 @@ fn Type List.pop_first(&self) **/ fn void List.remove_at(&self, usz index) { - for (usz i = index + 1; i < self.size; i++) - { - self.entries[i - 1] = self.entries[i]; - } - self.size--; + if (!--self.size || index == self.size) return; + self.entries[index .. self.size - 1] = self.entries[index + 1 .. self.size]; } fn void List.add_all(&self, List* other_list) diff --git a/releasenotes.md b/releasenotes.md index 781f5f2e4..2815b4e14 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -1,5 +1,14 @@ # C3C Release Notes +## 0.5.3 Change list + +### Changes / improvements + +### Fixes +- Single module command line option not respected. + +### Stdlib changes + ## 0.5.2 Change list ### Changes / improvements diff --git a/src/build/builder.c b/src/build/builder.c index 2d23a1b90..cd020b8a1 100644 --- a/src/build/builder.c +++ b/src/build/builder.c @@ -234,6 +234,10 @@ static void update_build_target_from_options(BuildTarget *target, BuildOptions * { target->optsize = options->optsize; } + if (options->single_module != SINGLE_MODULE_NOT_SET) + { + target->single_module = options->single_module; + } if (options->safety_level != SAFETY_NOT_SET) { target->feature.safe_mode = options->safety_level; diff --git a/src/version.h b/src/version.h index 161ae756a..76c9b1134 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define COMPILER_VERSION "0.5.2" +#define COMPILER_VERSION "0.5.3"