From d29360688215f53875dc3e9d2ec89720b2c34714 Mon Sep 17 00:00:00 2001 From: Kristoffer Date: Tue, 30 Jul 2024 16:57:37 +0200 Subject: [PATCH] fix a few JET opt errors --- src/chisels.jl | 4 ++-- src/main.jl | 6 +++--- src/runestone.jl | 12 ++++-------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/chisels.jl b/src/chisels.jl index ca36a48..c4e8db6 100644 --- a/src/chisels.jl +++ b/src/chisels.jl @@ -368,8 +368,8 @@ end function infix_op_call_op(node::Node) @assert is_infix_op_call(node) || kind(node) === K"||" kids = verified_kids(node) - first_operand_index = findfirst(!JuliaSyntax.is_whitespace, kids) - op_index = findnext(JuliaSyntax.is_operator, kids, first_operand_index + 1) + first_operand_index = findfirst(!JuliaSyntax.is_whitespace, kids)::Int + op_index = findnext(JuliaSyntax.is_operator, kids, first_operand_index + 1)::Int return kids[op_index] end diff --git a/src/main.jl b/src/main.jl index eabceaf..499b104 100644 --- a/src/main.jl +++ b/src/main.jl @@ -270,9 +270,9 @@ function main(argv) # Call the library to format the text ctx = try - ctx = Context(sourcetext; quiet, verbose, debug, diff, check) - format_tree!(ctx) - ctx + ctx′ = Context(sourcetext; quiet, verbose, debug, diff, check) + format_tree!(ctx′) + ctx′ catch err print_progress && errln() # Limit stacktrace to 5 frames because Runic uses recursion a lot and 5 should diff --git a/src/runestone.jl b/src/runestone.jl index 8452ac9..647c148 100644 --- a/src/runestone.jl +++ b/src/runestone.jl @@ -129,7 +129,7 @@ function format_float_literals(ctx::Context, node::Node) end # Split up the pieces r = r"^(?[+-])?(?\d*)(?:\.?(?\d*))?(?:(?[eEf][+-]?)(?\d+))?$" - m = match(r, str) + m = match(r, str)::RegexMatch io = IOBuffer() # TODO: Could be reused? # Write the sign part if (sgn = m[:sgn]; sgn !== nothing) @@ -380,10 +380,6 @@ function spaces_in_listlike(ctx::Context, node::Node) if last_item_idx !== nothing && last_item_idx <= opening_leaf_idx last_item_idx = nothing end - last_comma_idx = findprev(x -> kind(x) === K",", kids, closing_leaf_idx - 1) - if last_comma_idx !== nothing && last_comma_idx <= opening_leaf_idx - last_comma_idx = nothing - end # Multiline lists require leading and trailing newline # multiline = contains_outer_newline(kids, opening_leaf_idx, closing_leaf_idx) @@ -1379,7 +1375,7 @@ function replace_with_in(ctx::Context, node::Node) @assert kind(node) === K"=" && !is_leaf(node) && meta_nargs(node) == 3 kids = verified_kids(node) pos = position(ctx.fmt_io) - vars_index = findfirst(!JuliaSyntax.is_whitespace, kids) + vars_index = findfirst(!JuliaSyntax.is_whitespace, kids)::Int # TODO: Need to insert whitespaces around `in` when replacing e.g. `i=I` with `iinI`. # However, at the moment it looks like the whitespace around operator pass does it's # thing first? I don't really know how though, because the for loop pass should be @@ -2778,8 +2774,8 @@ function indent_multiline_strings(ctx::Context, node::Node) end # Opening triple quote - open_idx = findfirst(x -> kind(x) === triplekind, kids) - close_idx = findlast(x -> kind(x) === triplekind, kids) + open_idx = findfirst(x -> kind(x) === triplekind, kids)::Int + close_idx = findlast(x -> kind(x) === triplekind, kids)::Int @assert close_idx == length(kids) # ? open_kid = kids[open_idx] @assert kind(open_kid) === triplekind