sema: omit extraneous addition when safety is unwanted

This commit is contained in:
dweiller 2023-04-30 14:38:11 +10:00
parent 9fb5b047e9
commit 8aa70cf6cd

View File

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