authorgravatar for 4678790+dweiller@users.noreply.github.comDominic <4678790+dweiller@users.noreply.github.com> 2023-04-30 14:38:11+10:00
committergravatar for 4678790+dweiller@users.noreply.github.comDominic <4678790+dweiller@users.noreply.github.com> 2023-05-07 15:55:20+10:00
log8aa70cf6cd88b6103200d558c60295550c7b911d
tree4839a8890c5fbb09fda049f298d72f3b82c7ae10
parent9fb5b047e97896d7b25e897dc3737769d6b35a78

sema: omit extraneous addition when safety is unwanted


1 files changed, 1 insertions(+), 0 deletions(-)

src/Sema.zig+1
...@@ -29284,6 +29284,7 @@ fn analyzeSlice(...@@ -29284,6 +29284,7 @@ fn analyzeSlice(
29284 var end_is_len = uncasted_end_opt == .none;29284 var end_is_len = uncasted_end_opt == .none;
29285 const end = e: {29285 const end = e: {
29286 if (by_length and !end_is_len) {29286 if (by_length and !end_is_len) {
29287 if (!block.wantSafety()) break :e undefined;
29287 const len = try sema.coerce(block, Type.usize, uncasted_end_opt, end_src);29288 const len = try sema.coerce(block, Type.usize, uncasted_end_opt, end_src);
29288 const uncasted_end = try sema.analyzeArithmetic(block, .add, start, len, src, start_src, end_src, false);29289 const uncasted_end = try sema.analyzeArithmetic(block, .add, start, len, src, start_src, end_src, false);
29289 const end = try sema.coerce(block, Type.usize, uncasted_end, end_src);29290 const end = try sema.coerce(block, Type.usize, uncasted_end, end_src);