From 7ce753a16b0c16b4c6494467f42f2d5fe9a235e6 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 26 Mar 2017 05:21:28 -0400 Subject: [PATCH] replace "&&" and "||" with "and" and "or" closes #272 --- doc/langref.md | 6 +++--- doc/vim/syntax/zig.vim | 4 ++-- src/parser.cpp | 23 ++++++-------------- src/tokenizer.cpp | 48 ++++-------------------------------------- src/tokenizer.hpp | 6 ++---- std/cstr.zig | 2 +- std/darwin.zig | 2 +- std/debug.zig | 6 +++--- std/elf.zig | 8 +++---- std/fmt.zig | 2 +- std/hash_map.zig | 4 ++-- std/io.zig | 2 +- std/linux.zig | 2 +- std/math.zig | 2 +- std/net.zig | 14 ++++++------ test/cases/bool.zig | 12 ----------- test/cases/eval.zig | 2 +- test/cases/math.zig | 4 ++-- test/cases/misc.zig | 8 +++---- 19 files changed, 46 insertions(+), 111 deletions(-) diff --git a/doc/langref.md b/doc/langref.md index d2068dfd88bf757c3582db2906ff75106c9ede99..e4677d717b56ad9740f305001c1236c59e512134 100644 --- a/doc/langref.md +++ b/doc/langref.md @@ -69,7 +69,7 @@ UnwrapError = "%%" option("|" Symbol "|") Expression AssignmentExpression = UnwrapExpression AssignmentOperator UnwrapExpression | UnwrapExpression -AssignmentOperator = "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" | "^=" | "|=" | "&&=" | "||=" | "*%=" | "+%=" | "-%=" | "<<%=" +AssignmentOperator = "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" | "^=" | "|=" | "*%=" | "+%=" | "-%=" | "<<%=" BlockExpression = IfExpression | Block | WhileExpression | ForExpression | SwitchExpression | CompTimeExpression | TryExpression @@ -85,7 +85,7 @@ WhileExpression = option("inline") "while" "(" Expression option(";" Expression) ForExpression = option("inline") "for" "(" Expression ")" option("|" option("*") Symbol option("," Symbol) "|") Expression -BoolOrExpression = BoolAndExpression "||" BoolOrExpression | BoolAndExpression +BoolOrExpression = BoolAndExpression "or" BoolOrExpression | BoolAndExpression ReturnExpression = option("%" | "?") "return" option(Expression) @@ -101,7 +101,7 @@ IfVarExpression = "if" "(" ("const" | "var") option("*") Symbol option(":" TypeE Else = "else" Expression -BoolAndExpression = ComparisonExpression "&&" BoolAndExpression | ComparisonExpression +BoolAndExpression = ComparisonExpression "and" BoolAndExpression | ComparisonExpression ComparisonExpression = BinaryOrExpression ComparisonOperator BinaryOrExpression | BinaryOrExpression diff --git a/doc/vim/syntax/zig.vim b/doc/vim/syntax/zig.vim index 643f326ad25052acc0442cabb6dd404eb9d7b0bc..353e928b0db592fbb1fd04e8cb07316f15f0176a 100644 --- a/doc/vim/syntax/zig.vim +++ b/doc/vim/syntax/zig.vim @@ -11,7 +11,7 @@ let b:current_syntax = "zig" syn keyword zigStorage const var extern packed export pub noalias inline comptime nakedcc coldcc volatile syn keyword zigStructure struct enum union syn keyword zigStatement goto break return continue asm defer unreachable -syn keyword zigConditional if else switch try +syn keyword zigConditional if else switch try and or syn keyword zigRepeat while for syn keyword zigConstant null undefined this @@ -22,7 +22,7 @@ syn keyword zigType c_short c_ushort c_int c_uint c_long c_ulong c_longlong c_ul syn keyword zigBoolean true false -syn match zigOperator display "\%(+%\?\|-%\?\|/\|*%\?\|=\|\^\|&\|?\||\|!\|>\|<\|%\|<<%\?\|>>\|&&\|||\)=\?" +syn match zigOperator display "\%(+%\?\|-%\?\|/\|*%\?\|=\|\^\|&\|?\||\|!\|>\|<\|%\|<<%\?\|>>\)=\?" syn match zigArrowCharacter display "->" syn match zigDecNumber display "\<[0-9]*\%(.[0-9]\+\)\=\%([eE][+-]\?[0-9]\+\)\=" diff --git a/src/parser.cpp b/src/parser.cpp index 662ceba2c15044d57030551e665024670afe042d..0da247c051fd0b1ea37c46aca5b70dfdaff77a78 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1007,7 +1007,6 @@ static PrefixOp tok_to_prefix_op(Token *token) { case TokenIdPercent: return PrefixOpError; case TokenIdPercentPercent: return PrefixOpUnwrapError; case TokenIdDoubleQuestion: return PrefixOpUnwrapMaybe; - case TokenIdBoolAnd: return PrefixOpAddressOf; case TokenIdStarStar: return PrefixOpDereference; default: return PrefixOpInvalid; } @@ -1036,15 +1035,7 @@ static AstNode *ast_parse_prefix_op_expr(ParseContext *pc, size_t *token_index, AstNode *node = ast_create_node(pc, NodeTypePrefixOpExpr, token); AstNode *parent_node = node; - if (token->id == TokenIdBoolAnd) { - // pretend that we got 2 ampersand tokens - - parent_node = ast_create_node(pc, NodeTypePrefixOpExpr, token); - parent_node->data.prefix_op_expr.primary_expr = node; - parent_node->data.prefix_op_expr.prefix_op = PrefixOpAddressOf; - - node->column += 1; - } else if (token->id == TokenIdStarStar) { + if (token->id == TokenIdStarStar) { // pretend that we got 2 star tokens parent_node = ast_create_node(pc, NodeTypePrefixOpExpr, token); @@ -1362,7 +1353,7 @@ static AstNode *ast_parse_comparison_expr(ParseContext *pc, size_t *token_index, } /* -BoolAndExpression : ComparisonExpression token(BoolAnd) BoolAndExpression | ComparisonExpression +BoolAndExpression = ComparisonExpression "and" BoolAndExpression | ComparisonExpression */ static AstNode *ast_parse_bool_and_expr(ParseContext *pc, size_t *token_index, bool mandatory) { AstNode *operand_1 = ast_parse_comparison_expr(pc, token_index, mandatory); @@ -1371,7 +1362,7 @@ static AstNode *ast_parse_bool_and_expr(ParseContext *pc, size_t *token_index, b while (true) { Token *token = &pc->tokens->at(*token_index); - if (token->id != TokenIdBoolAnd) + if (token->id != TokenIdKeywordAnd) return operand_1; *token_index += 1; @@ -1629,7 +1620,7 @@ static AstNode *ast_parse_variable_declaration_expr(ParseContext *pc, size_t *to } /* -BoolOrExpression : BoolAndExpression token(BoolOr) BoolOrExpression | BoolAndExpression +BoolOrExpression = BoolAndExpression "or" BoolOrExpression | BoolAndExpression */ static AstNode *ast_parse_bool_or_expr(ParseContext *pc, size_t *token_index, bool mandatory) { AstNode *operand_1 = ast_parse_bool_and_expr(pc, token_index, mandatory); @@ -1638,7 +1629,7 @@ static AstNode *ast_parse_bool_or_expr(ParseContext *pc, size_t *token_index, bo while (true) { Token *token = &pc->tokens->at(*token_index); - if (token->id != TokenIdBoolOr) + if (token->id != TokenIdKeywordOr) return operand_1; *token_index += 1; @@ -1924,14 +1915,12 @@ static BinOpType tok_to_ass_op(Token *token) { case TokenIdBitAndEq: return BinOpTypeAssignBitAnd; case TokenIdBitXorEq: return BinOpTypeAssignBitXor; case TokenIdBitOrEq: return BinOpTypeAssignBitOr; - case TokenIdBoolAndEq: return BinOpTypeAssignBoolAnd; - case TokenIdBoolOrEq: return BinOpTypeAssignBoolOr; default: return BinOpTypeInvalid; } } /* -AssignmentOperator = "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" | "^=" | "|=" | "&&=" | "||=" | "*%=" | "+%=" | "-%=" | "<<%=" +AssignmentOperator = "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" | "^=" | "|=" | "*%=" | "+%=" | "-%=" | "<<%=" */ static BinOpType ast_parse_ass_op(ParseContext *pc, size_t *token_index, bool mandatory) { Token *token = &pc->tokens->at(*token_index); diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index ca162d7e0386dee8d3a354409e0d18b582f65a0a..adf10b93f9e56b89a95d46b9cd3900ccc971c4b3 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -107,6 +107,7 @@ struct ZigKeyword { }; static const struct ZigKeyword zig_keywords[] = { + {"and", TokenIdKeywordAnd}, {"asm", TokenIdKeywordAsm}, {"break", TokenIdKeywordBreak}, {"coldcc", TokenIdKeywordColdCC}, @@ -128,6 +129,7 @@ static const struct ZigKeyword zig_keywords[] = { {"nakedcc", TokenIdKeywordNakedCC}, {"noalias", TokenIdKeywordNoAlias}, {"null", TokenIdKeywordNull}, + {"or", TokenIdKeywordOr}, {"packed", TokenIdKeywordPacked}, {"pub", TokenIdKeywordPub}, {"return", TokenIdKeywordReturn}, @@ -189,10 +191,8 @@ enum TokenizeState { TokenizeStateSawDash, TokenizeStateSawMinusPercent, TokenizeStateSawAmpersand, - TokenizeStateSawAmpersandAmpersand, TokenizeStateSawCaret, TokenizeStateSawPipe, - TokenizeStateSawPipePipe, TokenizeStateLineComment, TokenizeStateLineString, TokenizeStateLineStringEnd, @@ -824,10 +824,6 @@ void tokenize(Buf *buf, Tokenization *out) { break; case TokenizeStateSawAmpersand: switch (c) { - case '&': - set_token_id(&t, t.cur_tok, TokenIdBoolAnd); - t.state = TokenizeStateSawAmpersandAmpersand; - break; case '=': set_token_id(&t, t.cur_tok, TokenIdBitAndEq); end_token(&t); @@ -840,20 +836,6 @@ void tokenize(Buf *buf, Tokenization *out) { continue; } break; - case TokenizeStateSawAmpersandAmpersand: - switch (c) { - case '=': - set_token_id(&t, t.cur_tok, TokenIdBoolAndEq); - end_token(&t); - t.state = TokenizeStateStart; - break; - default: - t.pos -= 1; - end_token(&t); - t.state = TokenizeStateStart; - continue; - } - break; case TokenizeStateSawCaret: switch (c) { case '=': @@ -870,10 +852,6 @@ void tokenize(Buf *buf, Tokenization *out) { break; case TokenizeStateSawPipe: switch (c) { - case '|': - set_token_id(&t, t.cur_tok, TokenIdBoolOr); - t.state = TokenizeStateSawPipePipe; - break; case '=': set_token_id(&t, t.cur_tok, TokenIdBitOrEq); end_token(&t); @@ -886,20 +864,6 @@ void tokenize(Buf *buf, Tokenization *out) { continue; } break; - case TokenizeStateSawPipePipe: - switch (c) { - case '=': - set_token_id(&t, t.cur_tok, TokenIdBoolOrEq); - end_token(&t); - t.state = TokenizeStateStart; - break; - default: - t.pos -= 1; - end_token(&t); - t.state = TokenizeStateStart; - continue; - } - break; case TokenizeStateSawSlash: switch (c) { case '/': @@ -1401,10 +1365,8 @@ void tokenize(Buf *buf, Tokenization *out) { case TokenizeStateSawPlus: case TokenizeStateSawDash: case TokenizeStateSawAmpersand: - case TokenizeStateSawAmpersandAmpersand: case TokenizeStateSawCaret: case TokenizeStateSawPipe: - case TokenizeStateSawPipePipe: case TokenizeStateSawEq: case TokenizeStateSawBang: case TokenizeStateSawLessThan: @@ -1463,10 +1425,6 @@ const char * token_name(TokenId id) { case TokenIdBitShiftRight: return ">>"; case TokenIdBitShiftRightEq: return ">>="; case TokenIdBitXorEq: return "^="; - case TokenIdBoolAnd: return "&&"; - case TokenIdBoolAndEq: return "&&="; - case TokenIdBoolOr: return "||"; - case TokenIdBoolOrEq: return "||="; case TokenIdCharLiteral: return "CharLiteral"; case TokenIdCmpEq: return "=="; case TokenIdCmpGreaterOrEq: return ">="; @@ -1484,6 +1442,7 @@ const char * token_name(TokenId id) { case TokenIdEof: return "EOF"; case TokenIdEq: return "="; case TokenIdFatArrow: return "=>"; + case TokenIdKeywordAnd: return "and"; case TokenIdKeywordAsm: return "asm"; case TokenIdKeywordBreak: return "break"; case TokenIdKeywordColdCC: return "coldcc"; @@ -1505,6 +1464,7 @@ const char * token_name(TokenId id) { case TokenIdKeywordNakedCC: return "nakedcc"; case TokenIdKeywordNoAlias: return "noalias"; case TokenIdKeywordNull: return "null"; + case TokenIdKeywordOr: return "or"; case TokenIdKeywordPacked: return "packed"; case TokenIdKeywordPub: return "pub"; case TokenIdKeywordReturn: return "return"; diff --git a/src/tokenizer.hpp b/src/tokenizer.hpp index 6b6d7ba8915fd424e0b3148eaa3854b3bf28e751..0b2e2ed34eb5840c58a657b0c61584ee59693eab 100644 --- a/src/tokenizer.hpp +++ b/src/tokenizer.hpp @@ -27,10 +27,6 @@ enum TokenId { TokenIdBitShiftRight, TokenIdBitShiftRightEq, TokenIdBitXorEq, - TokenIdBoolAnd, - TokenIdBoolAndEq, - TokenIdBoolOr, - TokenIdBoolOrEq, TokenIdCharLiteral, TokenIdCmpEq, TokenIdCmpGreaterOrEq, @@ -48,6 +44,7 @@ enum TokenId { TokenIdEof, TokenIdEq, TokenIdFatArrow, + TokenIdKeywordAnd, TokenIdKeywordAsm, TokenIdKeywordBreak, TokenIdKeywordColdCC, @@ -69,6 +66,7 @@ enum TokenId { TokenIdKeywordNakedCC, TokenIdKeywordNoAlias, TokenIdKeywordNull, + TokenIdKeywordOr, TokenIdKeywordPacked, TokenIdKeywordPub, TokenIdKeywordReturn, diff --git a/std/cstr.zig b/std/cstr.zig index ab250474df905e5012f95a409e53a05e40c9bf29..21cf393d4658b6fb9f3f9086ca87ba68020082f5 100644 --- a/std/cstr.zig +++ b/std/cstr.zig @@ -14,7 +14,7 @@ pub fn len(ptr: &const u8) -> usize { pub fn cmp(a: &const u8, b: &const u8) -> i8 { var index: usize = 0; - while (a[index] == b[index] && a[index] != 0; index += 1) {} + while (a[index] == b[index] and a[index] != 0; index += 1) {} if (a[index] > b[index]) { return 1; } else if (a[index] < b[index]) { diff --git a/std/darwin.zig b/std/darwin.zig index f5657b79b4c58a4af473b0b1b9eade2786dc85c8..647fee40e2ff6941ba3f5b4acde16d79183d55f3 100644 --- a/std/darwin.zig +++ b/std/darwin.zig @@ -56,7 +56,7 @@ pub fn exit(status: usize) -> noreturn { /// Get the errno from a syscall return value, or 0 for no error. pub fn getErrno(r: usize) -> usize { const signed_r = *(&isize)(&r); - if (signed_r > -4096 && signed_r < 0) usize(-signed_r) else 0 + if (signed_r > -4096 and signed_r < 0) usize(-signed_r) else 0 } pub fn write(fd: i32, buf: &const u8, count: usize) -> usize { diff --git a/std/debug.zig b/std/debug.zig index 42b4cc0f5d5ab1af1e434ced6b5d7128f2ab4d05..6a469c3c40d452af22dcf152765799de3d020ac8 100644 --- a/std/debug.zig +++ b/std/debug.zig @@ -335,7 +335,7 @@ fn parseAbbrevTable(in_stream: &io.InStream) -> %AbbrevTable { while (true) { const attr_id = %return readULeb128(in_stream); const form_id = %return readULeb128(in_stream); - if (attr_id == 0 && form_id == 0) + if (attr_id == 0 and form_id == 0) break; %return attrs.append(AbbrevAttr { .attr_id = attr_id, @@ -447,7 +447,7 @@ fn scanAllCompileUnits(st: &ElfStackTrace) -> %void { fn findCompileUnit(st: &ElfStackTrace, target_address: u64) -> ?&const CompileUnit { for (st.compile_unit_list.toSlice()) |*compile_unit| { - if (target_address >= compile_unit.pc_start && target_address < compile_unit.pc_end) + if (target_address >= compile_unit.pc_start and target_address < compile_unit.pc_end) return compile_unit; } return null; @@ -499,7 +499,7 @@ fn readILeb128(in_stream: &io.InStream) -> %i64 { shift += 7; if ((byte & 0b10000000) == 0) { - if (shift < @sizeOf(i64) * 8 && (byte & 0b01000000) != 0) + if (shift < @sizeOf(i64) * 8 and (byte & 0b01000000) != 0) result |= -(i64(1) << shift); return result; diff --git a/std/elf.zig b/std/elf.zig index 2a3777b2a4c0585cabd208f1d1ddaffe4356ff78..cecce42075ccc0b8229b140820229ec31363eb58 100644 --- a/std/elf.zig +++ b/std/elf.zig @@ -152,8 +152,8 @@ pub const Elf = struct { %return elf.in_stream.seekForward(4); const header_size = %return elf.in_stream.readInt(elf.is_big_endian, u16); - if ((elf.is_64 && header_size != 64) || - (!elf.is_64 && header_size != 52)) + if ((elf.is_64 and header_size != 64) or + (!elf.is_64 and header_size != 52)) { return error.InvalidFormat; } @@ -172,7 +172,7 @@ pub const Elf = struct { const end_ph = %return math.addOverflow(u64, elf.program_header_offset, ph_byte_count); const stream_end = %return elf.in_stream.getEndPos(); - if (stream_end < end_sh || stream_end < end_ph) { + if (stream_end < end_sh or stream_end < end_ph) { return error.InvalidFormat; } @@ -245,7 +245,7 @@ pub const Elf = struct { for (name) |expected_c| { const target_c = %return elf.in_stream.readByte(); - if (target_c == 0 || expected_c != target_c) goto next_section; + if (target_c == 0 or expected_c != target_c) goto next_section; } { diff --git a/std/fmt.zig b/std/fmt.zig index 94a698e36414ea11a3bf3d9018080c66732e6a47..e990867679d8e2ec77c3c4bb39f18ae630381500 100644 --- a/std/fmt.zig +++ b/std/fmt.zig @@ -33,7 +33,7 @@ pub fn format(context: var, output: fn(@typeOf(context), []const u8)->bool, switch (state) { State.Start => switch (c) { '{' => { - // TODO if you make this an if statement with && then it breaks + // TODO if you make this an if statement with `and` then it breaks if (start_index < i) { if (!output(context, fmt[start_index...i])) return false; diff --git a/std/hash_map.zig b/std/hash_map.zig index 2e8da38b6d6e99a0bda35286361069adc12567a2..d90cbaa7acd0f403957b754a6a86996457c98255 100644 --- a/std/hash_map.zig +++ b/std/hash_map.zig @@ -116,7 +116,7 @@ pub fn HashMap(comptime K: type, comptime V: type, while (roll_over < hm.entries.len; roll_over += 1) { const next_index = (start_index + roll_over + 1) % hm.entries.len; const next_entry = &hm.entries[next_index]; - if (!next_entry.used || next_entry.distance_from_start_index == 0) { + if (!next_entry.used or next_entry.distance_from_start_index == 0) { entry.used = false; hm.size -= 1; return; @@ -164,7 +164,7 @@ pub fn HashMap(comptime K: type, comptime V: type, const index = (start_index + roll_over) % hm.entries.len; const entry = &hm.entries[index]; - if (entry.used && !eql(entry.key, key)) { + if (entry.used and !eql(entry.key, key)) { if (entry.distance_from_start_index < distance_from_start_index) { // robin hood to the rescue const tmp = *entry; diff --git a/std/io.zig b/std/io.zig index 1bc47ceffc596ec75015a3109f6cab0b7fc95f8b..50733c9e13e00c19f0e35a82a84f8e02e028b189 100644 --- a/std/io.zig +++ b/std/io.zig @@ -148,7 +148,7 @@ pub const OutStream = struct { while (true) { const close_ret = system.close(self.fd); const close_err = system.getErrno(close_ret); - if (close_err > 0 && close_err == errno.EINTR) + if (close_err > 0 and close_err == errno.EINTR) continue; return; } diff --git a/std/linux.zig b/std/linux.zig index 9af7b1609dd9f5d1d3f239ac484f3eac3a90cfd0..be86136deea678b6aedb3af6a9216a63c8895c5a 100644 --- a/std/linux.zig +++ b/std/linux.zig @@ -227,7 +227,7 @@ pub const AF_MAX = PF_MAX; /// Get the errno from a syscall return value, or 0 for no error. pub fn getErrno(r: usize) -> usize { const signed_r = *(&isize)(&r); - if (signed_r > -4096 && signed_r < 0) usize(-signed_r) else 0 + if (signed_r > -4096 and signed_r < 0) usize(-signed_r) else 0 } pub fn mmap(address: ?&u8, length: usize, prot: usize, flags: usize, fd: i32, offset: usize) diff --git a/std/math.zig b/std/math.zig index 9bba82065589d5f8dc601f7a4815aac5eb7ec7d6..c526ba450548a9424f60db84486ee90c1947d1b3 100644 --- a/std/math.zig +++ b/std/math.zig @@ -49,7 +49,7 @@ pub fn log(comptime base: usize, value: var) -> @typeOf(value) { /// x must be an integer or a float /// Note that this causes undefined behavior if -/// @typeOf(x).is_signed && x == @minValue(@typeOf(x)). +/// @typeOf(x).is_signed and x == @minValue(@typeOf(x)). pub fn abs(x: var) -> @typeOf(x) { const T = @typeOf(x); if (@isInteger(T)) { diff --git a/std/net.zig b/std/net.zig index 50f63cbab94d1898cb32571fb68c0d7fd47e6b45..e1c8bf5d3f4876f1f97311fdfe247bd61bca2fe3 100644 --- a/std/net.zig +++ b/std/net.zig @@ -166,11 +166,11 @@ pub fn parseIpLiteral(buf: []const u8) -> %Address { fn hexDigit(c: u8) -> u8 { // TODO use switch with range - if ('0' <= c && c <= '9') { + if ('0' <= c and c <= '9') { c - '0' - } else if ('A' <= c && c <= 'Z') { + } else if ('A' <= c and c <= 'Z') { c - 'A' + 10 - } else if ('a' <= c && c <= 'z') { + } else if ('a' <= c and c <= 'z') { c - 'a' + 10 } else { @maxValue(u8) @@ -194,7 +194,7 @@ fn parseIp6(buf: []const u8) -> %Address { var scope_id = false; for (buf) |c| { if (scope_id) { - if (c >= '0' && c <= '9') { + if (c >= '0' and c <= '9') { const digit = c - '0'; if (@mulWithOverflow(u32, result.scope_id, 10, &result.scope_id)) { return error.Overflow; @@ -255,7 +255,7 @@ fn parseIp6(buf: []const u8) -> %Address { // if (isdigit(*++p)) scopeid = strtoull(p, &z, 10); // else z = p-1; // if (*z) { -// if (!IN6_IS_ADDR_LINKLOCAL(&a6) && +// if (!IN6_IS_ADDR_LINKLOCAL(&a6) and // !IN6_IS_ADDR_MC_LINKLOCAL(&a6)) // return EAI_NONAME; // scopeid = if_nametoindex(p); @@ -297,7 +297,7 @@ fn parseIp4(buf: []const u8) -> %u32 { index += 1; x = 0; saw_any_digits = false; - } else if (c >= '0' && c <= '9') { + } else if (c >= '0' and c <= '9') { saw_any_digits = true; const digit = c - '0'; if (@mulWithOverflow(u8, x, 10, &x)) { @@ -310,7 +310,7 @@ fn parseIp4(buf: []const u8) -> %u32 { return error.InvalidChar; } } - if (index == 3 && saw_any_digits) { + if (index == 3 and saw_any_digits) { out_ptr[index] = x; return result; } diff --git a/test/cases/bool.zig b/test/cases/bool.zig index c05387ef9f5486d953e2a6efb6974ec3332296dd..4fd788e8fd57c0fbe9fe4f8b8085a9b5c3c14472 100644 --- a/test/cases/bool.zig +++ b/test/cases/bool.zig @@ -25,18 +25,6 @@ fn testBoolCmp(a: bool, b: bool) -> bool { a == b } -test "shortCircuitAndOr" { - var a = true; - a &&= false; - assert(!a); - a &&= true; - assert(!a); - a ||= false; - assert(!a); - a ||= true; - assert(a); -} - const global_f = false; const global_t = true; const not_global_f = !global_f; diff --git a/test/cases/eval.zig b/test/cases/eval.zig index f66bba09918ae75fe5ccbb3b7207286bf941ab81..70acc3ef0f7f7aa7bdd8f0b611f850a25a4274fe 100644 --- a/test/cases/eval.zig +++ b/test/cases/eval.zig @@ -167,7 +167,7 @@ fn testTryToTrickEvalWithRuntimeIf(b: bool) -> usize { fn max(comptime T: type, a: T, b: T) -> T { if (T == bool) { - return a || b; + return a or b; } else if (a > b) { return a; } else { diff --git a/test/cases/math.zig b/test/cases/math.zig index 3171c526d81ff2ffd00eb3140816b57a01123831..3d5af7dca573bc38c4f6f610c0c0c12a24ee2bed 100644 --- a/test/cases/math.zig +++ b/test/cases/math.zig @@ -59,8 +59,8 @@ test "modifyOperators" { test "threeExprInARow" { } fn testThreeExprInARow(f: bool, t: bool) { - assertFalse(f || f || f); - assertFalse(t && t && f); + assertFalse(f or f or f); + assertFalse(t and t and f); assertFalse(1 | 2 | 4 != 7); assertFalse(3 ^ 6 ^ 8 != 13); assertFalse(7 & 14 & 28 != 4); diff --git a/test/cases/misc.zig b/test/cases/misc.zig index 1c6d9853bedc5fb1878fcbd04fa0ad243ce38536..c83e0374f6d1749a4a3882c2da7585885f47efd0 100644 --- a/test/cases/misc.zig +++ b/test/cases/misc.zig @@ -100,17 +100,17 @@ fn testShortCircuit(f: bool, t: bool) { var hit_3 = f; var hit_4 = f; - if (t || {assert(f); f}) { + if (t or {assert(f); f}) { hit_1 = t; } - if (f || { hit_2 = t; f }) { + if (f or { hit_2 = t; f }) { assert(f); } - if (t && { hit_3 = t; f }) { + if (t and { hit_3 = t; f }) { assert(f); } - if (f && {assert(f); f}) { + if (f and {assert(f); f}) { assert(f); } else { hit_4 = t; -- 2.54.0