diff --git a/lib/strings/strings.ww b/lib/strings/strings.ww index 7f2ae56b..0c209cd5 100644 --- a/lib/strings/strings.ww +++ b/lib/strings/strings.ww @@ -241,15 +241,11 @@ export fn sub(s: str, start: i32, end: i32) str = { export fn bytesub(s: str, start: i32, end: i32) (str | utf8.invalid) = { os.assert(start <= end, "strings.bytesub: start is higher than end"); os.assert(end <= s.len, "strings.bytesub: end exceeds string length"); - if (start < s.len) { - if ((s[start] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (start < s.len && (s[start] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; - if (end < s.len) { - if ((s[end] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (end < s.len && (s[end] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; let r: str; r.ptr = s.ptr + (start: u64); diff --git a/selfhost/cmd/w6a/main.combined.ww b/selfhost/cmd/w6a/main.combined.ww index 2a910a0c..fabe6ba9 100644 --- a/selfhost/cmd/w6a/main.combined.ww +++ b/selfhost/cmd/w6a/main.combined.ww @@ -2108,15 +2108,11 @@ export fn sub(s: str, start: i32, end: i32) str = { export fn bytesub(s: str, start: i32, end: i32) (str | utf8.invalid) = { os.assert(start <= end, "strings.bytesub: start is higher than end"); os.assert(end <= s.len, "strings.bytesub: end exceeds string length"); - if (start < s.len) { - if ((s[start] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (start < s.len && (s[start] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; - if (end < s.len) { - if ((s[end] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (end < s.len && (s[end] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; let r: str; r.ptr = s.ptr + (start: u64); diff --git a/selfhost/cmd/w6c/main.combined.ww b/selfhost/cmd/w6c/main.combined.ww index 12363069..4abe90d7 100644 --- a/selfhost/cmd/w6c/main.combined.ww +++ b/selfhost/cmd/w6c/main.combined.ww @@ -2108,15 +2108,11 @@ export fn sub(s: str, start: i32, end: i32) str = { export fn bytesub(s: str, start: i32, end: i32) (str | utf8.invalid) = { os.assert(start <= end, "strings.bytesub: start is higher than end"); os.assert(end <= s.len, "strings.bytesub: end exceeds string length"); - if (start < s.len) { - if ((s[start] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (start < s.len && (s[start] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; - if (end < s.len) { - if ((s[end] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (end < s.len && (s[end] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; let r: str; r.ptr = s.ptr + (start: u64); @@ -22666,11 +22662,10 @@ fn cgdot(c: *cgen, n: *node) void = { croot = croot.lhs; }; let it: *tinfo = nil; - if (allptr) { if (croot != nil) { if (croot.kind == nkind.N_IDENT) { - if (localfindnode(c, croot.str) != nil) { - it = lhs.type_: *tinfo; - }; - }; }; }; + if (allptr && croot != nil && croot.kind == nkind.N_IDENT && + localfindnode(c, croot.str) != nil) { + it = lhs.type_: *tinfo; + }; for (it != nil && it.kind == tykind.TY_NAMED) { it = it.under; }; if (it != nil) { if (it.kind == tykind.TY_PTR) { let st: *tinfo = it.sub; @@ -26442,11 +26437,10 @@ fn cgassign(c: *cgen, n: *node) void = { croot = croot.lhs; }; let it: *tinfo = nil; - if (allptr) { if (croot != nil) { if (croot.kind == nkind.N_IDENT) { - if (localfindnode(c, croot.str) != nil) { - it = base.type_: *tinfo; - }; - }; }; }; + if (allptr && croot != nil && croot.kind == nkind.N_IDENT && + localfindnode(c, croot.str) != nil) { + it = base.type_: *tinfo; + }; for (it != nil && it.kind == tykind.TY_NAMED) { it = it.under; }; if (it != nil) { if (it.kind == tykind.TY_PTR) { let st: *tinfo = it.sub; diff --git a/selfhost/cmd/w6l/main.combined.ww b/selfhost/cmd/w6l/main.combined.ww index 43656863..5734d695 100644 --- a/selfhost/cmd/w6l/main.combined.ww +++ b/selfhost/cmd/w6l/main.combined.ww @@ -2217,15 +2217,11 @@ export fn sub(s: str, start: i32, end: i32) str = { export fn bytesub(s: str, start: i32, end: i32) (str | utf8.invalid) = { os.assert(start <= end, "strings.bytesub: start is higher than end"); os.assert(end <= s.len, "strings.bytesub: end exceeds string length"); - if (start < s.len) { - if ((s[start] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (start < s.len && (s[start] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; - if (end < s.len) { - if ((s[end] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (end < s.len && (s[end] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; let r: str; r.ptr = s.ptr + (start: u64); @@ -3156,14 +3152,11 @@ type armember = struct { fn isarchive(p: *u8, len: u64) bool = { if (len < 8u64) { return false; }; - if (p[0u64] != '!') { return false; }; - if (p[1u64] != '<') { return false; }; - if (p[2u64] != 'a') { return false; }; - if (p[3u64] != 'r') { return false; }; - if (p[4u64] != 'c') { return false; }; - if (p[5u64] != 'h') { return false; }; - if (p[6u64] != '>') { return false; }; - if (p[7u64] != '\n') { return false; }; + if (p[0u64] != '!' || p[1u64] != '<' || p[2u64] != 'a' || p[3u64] != 'r' || + p[4u64] != 'c' || p[5u64] != 'h' || p[6u64] != '>' || + p[7u64] != '\n') { + return false; + }; return true; }; diff --git a/selfhost/cmd/w6l/obj.ww b/selfhost/cmd/w6l/obj.ww index 6b1cd336..eda2cc94 100644 --- a/selfhost/cmd/w6l/obj.ww +++ b/selfhost/cmd/w6l/obj.ww @@ -209,14 +209,11 @@ type armember = struct { fn isarchive(p: *u8, len: u64) bool = { if (len < 8u64) { return false; }; - if (p[0u64] != '!') { return false; }; - if (p[1u64] != '<') { return false; }; - if (p[2u64] != 'a') { return false; }; - if (p[3u64] != 'r') { return false; }; - if (p[4u64] != 'c') { return false; }; - if (p[5u64] != 'h') { return false; }; - if (p[6u64] != '>') { return false; }; - if (p[7u64] != '\n') { return false; }; + if (p[0u64] != '!' || p[1u64] != '<' || p[2u64] != 'a' || p[3u64] != 'r' || + p[4u64] != 'c' || p[5u64] != 'h' || p[6u64] != '>' || + p[7u64] != '\n') { + return false; + }; return true; }; diff --git a/selfhost/cmd/wcc/cgenexpr.ww b/selfhost/cmd/wcc/cgenexpr.ww index 6a2c855e..69e2a35a 100644 --- a/selfhost/cmd/wcc/cgenexpr.ww +++ b/selfhost/cmd/wcc/cgenexpr.ww @@ -2926,11 +2926,10 @@ fn cgdot(c: *cgen, n: *node) void = { croot = croot.lhs; }; let it: *tinfo = nil; - if (allptr) { if (croot != nil) { if (croot.kind == nkind.N_IDENT) { - if (localfindnode(c, croot.str) != nil) { - it = lhs.type_: *tinfo; - }; - }; }; }; + if (allptr && croot != nil && croot.kind == nkind.N_IDENT && + localfindnode(c, croot.str) != nil) { + it = lhs.type_: *tinfo; + }; for (it != nil && it.kind == tykind.TY_NAMED) { it = it.under; }; if (it != nil) { if (it.kind == tykind.TY_PTR) { let st: *tinfo = it.sub; @@ -6702,11 +6701,10 @@ fn cgassign(c: *cgen, n: *node) void = { croot = croot.lhs; }; let it: *tinfo = nil; - if (allptr) { if (croot != nil) { if (croot.kind == nkind.N_IDENT) { - if (localfindnode(c, croot.str) != nil) { - it = base.type_: *tinfo; - }; - }; }; }; + if (allptr && croot != nil && croot.kind == nkind.N_IDENT && + localfindnode(c, croot.str) != nil) { + it = base.type_: *tinfo; + }; for (it != nil && it.kind == tykind.TY_NAMED) { it = it.under; }; if (it != nil) { if (it.kind == tykind.TY_PTR) { let st: *tinfo = it.sub; diff --git a/selfhost/cmd/ww/main.combined.ww b/selfhost/cmd/ww/main.combined.ww index 12b83b62..b3630355 100644 --- a/selfhost/cmd/ww/main.combined.ww +++ b/selfhost/cmd/ww/main.combined.ww @@ -2108,15 +2108,11 @@ export fn sub(s: str, start: i32, end: i32) str = { export fn bytesub(s: str, start: i32, end: i32) (str | utf8.invalid) = { os.assert(start <= end, "strings.bytesub: start is higher than end"); os.assert(end <= s.len, "strings.bytesub: end exceeds string length"); - if (start < s.len) { - if ((s[start] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (start < s.len && (s[start] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; - if (end < s.len) { - if ((s[end] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (end < s.len && (s[end] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; let r: str; r.ptr = s.ptr + (start: u64); diff --git a/selfhost/cmd/wwdump/main.combined.ww b/selfhost/cmd/wwdump/main.combined.ww index 03b105ec..f64d886d 100644 --- a/selfhost/cmd/wwdump/main.combined.ww +++ b/selfhost/cmd/wwdump/main.combined.ww @@ -3625,15 +3625,11 @@ export fn sub(s: str, start: i32, end: i32) str = { export fn bytesub(s: str, start: i32, end: i32) (str | utf8.invalid) = { os.assert(start <= end, "strings.bytesub: start is higher than end"); os.assert(end <= s.len, "strings.bytesub: end exceeds string length"); - if (start < s.len) { - if ((s[start] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (start < s.len && (s[start] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; - if (end < s.len) { - if ((s[end] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (end < s.len && (s[end] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; let r: str; r.ptr = s.ptr + (start: u64); @@ -22666,11 +22662,10 @@ fn cgdot(c: *cgen, n: *node) void = { croot = croot.lhs; }; let it: *tinfo = nil; - if (allptr) { if (croot != nil) { if (croot.kind == nkind.N_IDENT) { - if (localfindnode(c, croot.str) != nil) { - it = lhs.type_: *tinfo; - }; - }; }; }; + if (allptr && croot != nil && croot.kind == nkind.N_IDENT && + localfindnode(c, croot.str) != nil) { + it = lhs.type_: *tinfo; + }; for (it != nil && it.kind == tykind.TY_NAMED) { it = it.under; }; if (it != nil) { if (it.kind == tykind.TY_PTR) { let st: *tinfo = it.sub; @@ -26442,11 +26437,10 @@ fn cgassign(c: *cgen, n: *node) void = { croot = croot.lhs; }; let it: *tinfo = nil; - if (allptr) { if (croot != nil) { if (croot.kind == nkind.N_IDENT) { - if (localfindnode(c, croot.str) != nil) { - it = base.type_: *tinfo; - }; - }; }; }; + if (allptr && croot != nil && croot.kind == nkind.N_IDENT && + localfindnode(c, croot.str) != nil) { + it = base.type_: *tinfo; + }; for (it != nil && it.kind == tykind.TY_NAMED) { it = it.under; }; if (it != nil) { if (it.kind == tykind.TY_PTR) { let st: *tinfo = it.sub; diff --git a/selfhost/test/smoke.combined.ww b/selfhost/test/smoke.combined.ww index 54419c8b..56a51e00 100644 --- a/selfhost/test/smoke.combined.ww +++ b/selfhost/test/smoke.combined.ww @@ -3625,15 +3625,11 @@ export fn sub(s: str, start: i32, end: i32) str = { export fn bytesub(s: str, start: i32, end: i32) (str | utf8.invalid) = { os.assert(start <= end, "strings.bytesub: start is higher than end"); os.assert(end <= s.len, "strings.bytesub: end exceeds string length"); - if (start < s.len) { - if ((s[start] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (start < s.len && (s[start] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; - if (end < s.len) { - if ((s[end] & 0xC0u8) == 0x80u8) { - let e: utf8.invalid; return e; - }; + if (end < s.len && (s[end] & 0xC0u8) == 0x80u8) { + let e: utf8.invalid; return e; }; let r: str; r.ptr = s.ptr + (start: u64);