mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Disallow for in in favour of for _ in
This commit is contained in:
@@ -127,7 +127,7 @@ advance_rune :: proc(t: ^Tokenizer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
advance_rune_n :: proc(t: ^Tokenizer, n: int) {
|
advance_rune_n :: proc(t: ^Tokenizer, n: int) {
|
||||||
for in 0..<n {
|
for _ in 0..<n {
|
||||||
advance_rune(t)
|
advance_rune(t)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -1565,7 +1565,7 @@ fmt_bit_set :: proc(fi: ^Info, v: any, name: string = "") {
|
|||||||
// - fi: A pointer to the Info structure where the indents will be written.
|
// - fi: A pointer to the Info structure where the indents will be written.
|
||||||
//
|
//
|
||||||
fmt_write_indent :: proc(fi: ^Info) {
|
fmt_write_indent :: proc(fi: ^Info) {
|
||||||
for in 0..<fi.indent {
|
for _ in 0..<fi.indent {
|
||||||
io.write_byte(fi.writer, '\t', &fi.n)
|
io.write_byte(fi.writer, '\t', &fi.n)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1720,7 +1720,7 @@ fmt_struct :: proc(fi: ^Info, v: any, the_verb: rune, info: runtime.Type_Info_St
|
|||||||
}
|
}
|
||||||
defer {
|
defer {
|
||||||
if hash {
|
if hash {
|
||||||
for in 0..<indent { io.write_byte(fi.writer, '\t', &fi.n) }
|
for _ in 0..<indent { io.write_byte(fi.writer, '\t', &fi.n) }
|
||||||
}
|
}
|
||||||
io.write_byte(fi.writer, ']' if is_soa else '}', &fi.n)
|
io.write_byte(fi.writer, ']' if is_soa else '}', &fi.n)
|
||||||
}
|
}
|
||||||
@@ -1956,7 +1956,7 @@ fmt_named :: proc(fi: ^Info, v: any, verb: rune, info: runtime.Type_Info_Named)
|
|||||||
for x := i; x >= 10; x /= 10 {
|
for x := i; x >= 10; x /= 10 {
|
||||||
n -= 1
|
n -= 1
|
||||||
}
|
}
|
||||||
for in 0..<n {
|
for _ in 0..<n {
|
||||||
io.write_byte(fi.writer, '0', &fi.n)
|
io.write_byte(fi.writer, '0', &fi.n)
|
||||||
}
|
}
|
||||||
io.write_i64(fi.writer, i, 10, &fi.n)
|
io.write_i64(fi.writer, i, 10, &fi.n)
|
||||||
@@ -1989,7 +1989,7 @@ fmt_named :: proc(fi: ^Info, v: any, verb: rune, info: runtime.Type_Info_Named)
|
|||||||
v := v
|
v := v
|
||||||
w := len(buf)
|
w := len(buf)
|
||||||
print := false
|
print := false
|
||||||
for in 0..<prec {
|
for _ in 0..<prec {
|
||||||
digit := v % 10
|
digit := v % 10
|
||||||
print = print || digit != 0
|
print = print || digit != 0
|
||||||
if print {
|
if print {
|
||||||
|
|||||||
@@ -299,7 +299,7 @@ load_from_context :: proc(ctx: ^$C, options := Options{}, allocator := context.a
|
|||||||
if length := int(data & 63) + 1; (length * img.channels) > len(pixels) {
|
if length := int(data & 63) + 1; (length * img.channels) > len(pixels) {
|
||||||
return img, .Corrupt
|
return img, .Corrupt
|
||||||
} else {
|
} else {
|
||||||
#no_bounds_check for in 0..<length {
|
#no_bounds_check for _ in 0..<length {
|
||||||
copy(pixels, pix[:img.channels])
|
copy(pixels, pix[:img.channels])
|
||||||
pixels = pixels[img.channels:]
|
pixels = pixels[img.channels:]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -416,7 +416,7 @@ rel :: proc(base_path, target_path: string, allocator := context.allocator) -> (
|
|||||||
}
|
}
|
||||||
buf := make([]byte, size)
|
buf := make([]byte, size)
|
||||||
n := copy(buf, "..")
|
n := copy(buf, "..")
|
||||||
for in 0..<seps {
|
for _ in 0..<seps {
|
||||||
buf[n] = SEPARATOR
|
buf[n] = SEPARATOR
|
||||||
copy(buf[n+1:], "..")
|
copy(buf[n+1:], "..")
|
||||||
n += 3
|
n += 3
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ peek :: proc(s: ^Scanner, n := 0) -> (ch: rune) {
|
|||||||
ch = s.ch
|
ch = s.ch
|
||||||
if n > 0 {
|
if n > 0 {
|
||||||
prev_s := s^
|
prev_s := s^
|
||||||
for in 0..<n {
|
for _ in 0..<n {
|
||||||
next(s)
|
next(s)
|
||||||
}
|
}
|
||||||
ch = s.ch
|
ch = s.ch
|
||||||
@@ -214,7 +214,7 @@ peek :: proc(s: ^Scanner, n := 0) -> (ch: rune) {
|
|||||||
peek_token :: proc(s: ^Scanner, n := 0) -> (tok: rune) {
|
peek_token :: proc(s: ^Scanner, n := 0) -> (tok: rune) {
|
||||||
assert(n >= 0)
|
assert(n >= 0)
|
||||||
prev_s := s^
|
prev_s := s^
|
||||||
for in 0..<n {
|
for _ in 0..<n {
|
||||||
tok = scan(s)
|
tok = scan(s)
|
||||||
}
|
}
|
||||||
tok = scan(s)
|
tok = scan(s)
|
||||||
|
|||||||
@@ -1155,7 +1155,7 @@ threading_example :: proc() {
|
|||||||
threads := make([dynamic]^thread.Thread, 0, len(prefix_table))
|
threads := make([dynamic]^thread.Thread, 0, len(prefix_table))
|
||||||
defer delete(threads)
|
defer delete(threads)
|
||||||
|
|
||||||
for in prefix_table {
|
for _ in prefix_table {
|
||||||
if t := thread.create(worker_proc); t != nil {
|
if t := thread.create(worker_proc); t != nil {
|
||||||
t.init_context = context
|
t.init_context = context
|
||||||
t.user_index = len(threads)
|
t.user_index = len(threads)
|
||||||
|
|||||||
@@ -4271,6 +4271,8 @@ gb_internal Ast *parse_for_stmt(AstFile *f) {
|
|||||||
|
|
||||||
if (f->curr_token.kind == Token_in) {
|
if (f->curr_token.kind == Token_in) {
|
||||||
Token in_token = expect_token(f, Token_in);
|
Token in_token = expect_token(f, Token_in);
|
||||||
|
syntax_error(in_token, "Prefer 'for _ in' over 'for in'");
|
||||||
|
|
||||||
Ast *rhs = nullptr;
|
Ast *rhs = nullptr;
|
||||||
bool prev_allow_range = f->allow_range;
|
bool prev_allow_range = f->allow_range;
|
||||||
f->allow_range = true;
|
f->allow_range = true;
|
||||||
@@ -4282,6 +4284,7 @@ gb_internal Ast *parse_for_stmt(AstFile *f) {
|
|||||||
} else {
|
} else {
|
||||||
body = parse_block_stmt(f, false);
|
body = parse_block_stmt(f, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ast_range_stmt(f, token, {}, in_token, rhs, body);
|
return ast_range_stmt(f, token, {}, in_token, rhs, body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user