From 7f4cf08516c04a9f48f18cc2ca193c022cb32dfd Mon Sep 17 00:00:00 2001 From: yuyi Date: Sun, 17 May 2020 19:51:18 +0800 Subject: [PATCH] parser: check `(mut f Foo)` syntax --- cmd/tools/gen_vc.v | 20 ++--- cmd/tools/modules/testing/common.v | 8 +- cmd/tools/modules/vgit/vgit.v | 2 +- cmd/tools/oldv.v | 2 +- cmd/tools/preludes/tests_with_stats.v | 6 +- cmd/tools/vrepl.v | 2 +- examples/json.v | 3 +- examples/tetris/tetris.v | 22 ++--- examples/vweb/vweb_assets/main.v | 10 +-- examples/vweb/vweb_example.v | 12 +-- tutorials/code/blog/blog.v | 14 +-- vlib/benchmark/benchmark.v | 20 ++--- vlib/bitfield/bitfield.v | 14 +-- vlib/builtin/array.v | 22 ++--- vlib/builtin/bare/array_bare.v | 2 +- vlib/builtin/js/array.v | 10 +-- vlib/builtin/js/map.v | 6 +- vlib/builtin/js/string.v | 12 +-- vlib/builtin/map.v | 24 +++--- vlib/builtin/map_test.v | 2 +- vlib/builtin/sorted_map.v | 24 +++--- vlib/builtin/string.v | 8 +- vlib/cli/command.v | 14 +-- vlib/cli/flag.v | 6 +- vlib/clipboard/clipboard.v | 8 +- vlib/clipboard/clipboard_darwin.c.v | 8 +- vlib/clipboard/clipboard_linux.c.v | 14 +-- vlib/clipboard/clipboard_solaris.c.v | 10 +-- vlib/crypto/aes/aes_cbc.v | 2 +- vlib/crypto/md5/md5.v | 6 +- vlib/crypto/rc4/rc4.v | 4 +- vlib/crypto/sha1/sha1.v | 6 +- vlib/crypto/sha256/sha256.v | 6 +- vlib/crypto/sha512/sha512.v | 6 +- vlib/encoding/csv/reader.v | 8 +- vlib/encoding/csv/writer.v | 4 +- vlib/eventbus/eventbus.v | 12 +-- vlib/flag/flag.v | 44 +++++----- vlib/gg/gg.v | 6 +- vlib/gg2/gg.v | 2 +- vlib/glfw/glfw.v | 12 +-- vlib/hash/crc32/crc32.v | 2 +- vlib/log/log.v | 26 +++--- vlib/math/big/big.v | 4 +- vlib/mysql/mysql.v | 2 +- vlib/net/http/chunked/dechunk.v | 7 +- vlib/net/urllib/urllib.v | 2 +- vlib/net/urllib/values.v | 7 +- vlib/net/websocket/handshake.v | 8 +- vlib/net/websocket/io.v | 4 +- vlib/net/websocket/ssl.v | 2 +- vlib/net/websocket/utf8.v | 6 +- vlib/net/websocket/ws.v | 12 +-- vlib/os/os.v | 4 +- vlib/os/os_nix.c.v | 10 +-- vlib/os/os_windows.c.v | 8 +- vlib/picohttpparser/request.v | 6 +- vlib/picohttpparser/response.v | 26 +++--- vlib/rand/pcg32.v | 5 +- vlib/rand/splitmix64.v | 5 +- vlib/readline/readline.js.v | 4 +- vlib/readline/readline_darwin.c.v | 4 +- vlib/readline/readline_linux.c.v | 46 +++++----- vlib/readline/readline_solaris.c.v | 4 +- vlib/readline/readline_windows.c.v | 4 +- vlib/regex/regex.v | 22 ++--- vlib/sokol/gfx/gfx_structs.v | 24 +++--- vlib/strings/builder.c.v | 16 ++-- vlib/strings/builder.js.v | 10 +-- vlib/sync/pool.v | 14 +-- vlib/sync/sync_nix.c.v | 5 +- vlib/sync/sync_windows.c.v | 6 +- vlib/sync/waitgroup.v | 5 +- vlib/szip/szip.v | 38 ++++---- vlib/time/stopwatch.v | 9 +- vlib/v/ast/scope.v | 4 +- vlib/v/checker/tests/mut_receiver_warning.out | 7 ++ vlib/v/checker/tests/mut_receiver_warning.vv | 10 +++ vlib/v/gen/js/js.v | 86 +++++++++---------- vlib/v/parser/fn.v | 3 + vlib/v/parser/module.v | 2 +- vlib/v/scanner/scanner.v | 32 +++---- vlib/v/tests/generic_test.v | 2 +- vlib/v/tests/interfaces_map_test.v | 2 +- vlib/v/vmod/vmod.v | 12 +-- vlib/vweb/assets/assets.v | 8 +- vlib/vweb/vweb.v | 24 +++--- 87 files changed, 492 insertions(+), 480 deletions(-) create mode 100644 vlib/v/checker/tests/mut_receiver_warning.out create mode 100644 vlib/v/checker/tests/mut_receiver_warning.vv diff --git a/cmd/tools/gen_vc.v b/cmd/tools/gen_vc.v index 1eeca0d308..f8350d1c2b 100644 --- a/cmd/tools/gen_vc.v +++ b/cmd/tools/gen_vc.v @@ -152,7 +152,7 @@ fn new_gen_vc(flag_options FlagOptions) &GenVC { } // WebhookServer init -pub fn (ws mut WebhookServer) init() { +pub fn (mut ws WebhookServer) init() { mut fp := flag.new_flag_parser(os.args.clone()) flag_options := parse_flags(mut fp) @@ -162,7 +162,7 @@ pub fn (ws mut WebhookServer) init() { } // gen webhook -pub fn (ws mut WebhookServer) genhook() { +pub fn (mut ws WebhookServer) genhook() { ws.gen_vc.generate() // error in generate if ws.gen_vc.gen_error { @@ -191,7 +191,7 @@ fn parse_flags(fp mut flag.FlagParser) FlagOptions { } // init -fn (gen_vc mut GenVC) init() { +fn (mut gen_vc GenVC) init() { // purge repos if flag is passed if gen_vc.options.purge { gen_vc.purge_repos() @@ -199,7 +199,7 @@ fn (gen_vc mut GenVC) init() { } // regenerate -fn (gen_vc mut GenVC) generate() { +fn (mut gen_vc GenVC) generate() { // set errors to false gen_vc.gen_error = false @@ -316,17 +316,17 @@ fn (gen_vc mut GenVC) generate() { } // only execute when dry_run option is false, otherwise just log -fn (gen_vc mut GenVC) cmd_exec_safe(cmd string) string { +fn (mut gen_vc GenVC) cmd_exec_safe(cmd string) string { return gen_vc.command_execute(cmd, gen_vc.options.dry_run) } // always execute command -fn (gen_vc mut GenVC) cmd_exec(cmd string) string { +fn (mut gen_vc GenVC) cmd_exec(cmd string) string { return gen_vc.command_execute(cmd, false) } // execute command -fn (gen_vc mut GenVC) command_execute(cmd string, dry bool) string { +fn (mut gen_vc GenVC) command_execute(cmd string, dry bool) string { // if dry is true then dont execute, just log if dry { return gen_vc.command_execute_dry(cmd) @@ -352,13 +352,13 @@ fn (gen_vc mut GenVC) command_execute(cmd string, dry bool) string { } // just log cmd, dont execute -fn (gen_vc mut GenVC) command_execute_dry(cmd string) string { +fn (mut gen_vc GenVC) command_execute_dry(cmd string) string { gen_vc.logger.info('cmd (dry): "$cmd"') return '' } // delete repo directories -fn (gen_vc mut GenVC) purge_repos() { +fn (mut gen_vc GenVC) purge_repos() { // delete old repos (better to be fully explicit here, since these are destructive operations) mut repo_dir := '$gen_vc.options.work_dir/$git_repo_dir_v' if os.is_dir(repo_dir) { @@ -373,7 +373,7 @@ fn (gen_vc mut GenVC) purge_repos() { } // check if file size is too short -fn (gen_vc mut GenVC) assert_file_exists_and_is_not_too_short(f string, emsg string){ +fn (mut gen_vc GenVC) assert_file_exists_and_is_not_too_short(f string, emsg string){ if !os.exists(f) { gen_vc.logger.error('$err_msg_build: $emsg .') gen_vc.gen_error = true diff --git a/cmd/tools/modules/testing/common.v b/cmd/tools/modules/testing/common.v index 3bb36d2615..1398663f71 100644 --- a/cmd/tools/modules/testing/common.v +++ b/cmd/tools/modules/testing/common.v @@ -27,7 +27,7 @@ pub mut: message_handler &TestMessageHandler } -pub fn (mh mut TestMessageHandler) append_message(msg string) { +pub fn (mut mh TestMessageHandler) append_message(msg string) { mh.mtx.lock() mh.messages << msg mh.mtx.unlock() @@ -54,11 +54,11 @@ pub fn new_test_session(_vargs string) TestSession { } } -pub fn (ts mut TestSession) init() { +pub fn (mut ts TestSession) init() { ts.benchmark = benchmark.new_benchmark_no_cstep() } -pub fn (ts mut TestSession) test() { +pub fn (mut ts TestSession) test() { ts.init() mut remaining_files := []string{} for dot_relative_file in ts.files { @@ -111,7 +111,7 @@ pub fn (ts mut TestSession) test() { eprintln(term.h_divider('-')) } -pub fn (m mut TestMessageHandler) display_message() { +pub fn (mut m TestMessageHandler) display_message() { m.mtx.lock() defer { m.messages.clear() diff --git a/cmd/tools/modules/vgit/vgit.v b/cmd/tools/modules/vgit/vgit.v index b4005ac2c7..30c1f85dd7 100644 --- a/cmd/tools/modules/vgit/vgit.v +++ b/cmd/tools/modules/vgit/vgit.v @@ -92,7 +92,7 @@ pub mut: vvlocation string // v.v or compiler/ or cmd/v, depending on v version } -pub fn (vgit_context mut VGitContext) compile_oldv_if_needed() { +pub fn (mut vgit_context VGitContext) compile_oldv_if_needed() { vgit_context.vexename = if os.user_os() == 'windows' { 'v.exe' } else { 'v' } vgit_context.vexepath = os.real_path(os.join_path(vgit_context.path_v, vgit_context.vexename)) mut command_for_building_v_from_c_source := '' diff --git a/cmd/tools/oldv.v b/cmd/tools/oldv.v index 1a3d3252dc..2617b7d87b 100644 --- a/cmd/tools/oldv.v +++ b/cmd/tools/oldv.v @@ -40,7 +40,7 @@ mut: cleanup bool // should the tool run a cleanup first } -fn (c mut Context) compile_oldv_if_needed() { +fn (mut c Context) compile_oldv_if_needed() { mut vgit_context := vgit.VGitContext{ workdir: c.vgo.workdir v_repo_url: c.vgo.v_repo_url diff --git a/cmd/tools/preludes/tests_with_stats.v b/cmd/tools/preludes/tests_with_stats.v index 485777a048..36ad06a5da 100644 --- a/cmd/tools/preludes/tests_with_stats.v +++ b/cmd/tools/preludes/tests_with_stats.v @@ -36,7 +36,7 @@ fn start_testing(total_number_of_tests int, vfilename string) BenchedTests { } // Called before each test_ function, defined in file_test.v -fn (b mut BenchedTests) testing_step_start(stepfunc string) { +fn (mut b BenchedTests) testing_step_start(stepfunc string) { b.step_func_name = stepfunc.replace('main__', '').replace('__', '.') b.oks = C.g_test_oks b.fails = C.g_test_fails @@ -44,7 +44,7 @@ fn (b mut BenchedTests) testing_step_start(stepfunc string) { } // Called after each test_ function, defined in file_test.v -fn (b mut BenchedTests) testing_step_end() { +fn (mut b BenchedTests) testing_step_end() { ok_diff := C.g_test_oks - b.oks fail_diff := C.g_test_fails - b.fails // //////////////////////////////////////////////////////////////// @@ -76,7 +76,7 @@ fn (b &BenchedTests) fn_name() string { } // Called at the end of the test program produced by `v -stats file_test.v` -fn (b mut BenchedTests) end_testing() { +fn (mut b BenchedTests) end_testing() { b.bench.stop() println(INNER_INDENT + b.bench.total_message('running V tests in "' + os.file_name(b.test_suit_file) + '"')) } diff --git a/cmd/tools/vrepl.v b/cmd/tools/vrepl.v index 81906bd941..c4a42a8df4 100644 --- a/cmd/tools/vrepl.v +++ b/cmd/tools/vrepl.v @@ -23,7 +23,7 @@ mut: temp_lines []string // all the temporary expressions/printlns } -fn (r mut Repl) checks() bool { +fn (mut r Repl) checks() bool { mut in_string := false was_indent := r.indent > 0 diff --git a/examples/json.v b/examples/json.v index ea6c2bdb6b..6c1a6e45b1 100644 --- a/examples/json.v +++ b/examples/json.v @@ -35,7 +35,6 @@ fn (u User) can_register() bool { return u.age >= 16 } -fn (u mut User) register() { +fn (mut u User) register() { u.is_registered = true } - diff --git a/examples/tetris/tetris.v b/examples/tetris/tetris.v index a23f2d9cc0..3015fcb0fa 100644 --- a/examples/tetris/tetris.v +++ b/examples/tetris/tetris.v @@ -183,7 +183,7 @@ fn main() { } } -fn (g mut Game) init_game() { +fn (mut g Game) init_game() { g.parse_tetros() rand.seed(time.now().unix) g.generate_tetro() @@ -205,7 +205,7 @@ fn (g mut Game) init_game() { g.state = .running } -fn (g mut Game) parse_tetros() { +fn (mut g Game) parse_tetros() { for b_tetros0 in b_tetros { for b_tetro in b_tetros0 { for t in parse_binary_tetro(b_tetro) { @@ -215,7 +215,7 @@ fn (g mut Game) parse_tetros() { } } -fn (g mut Game) run() { +fn (mut g Game) run() { for { if g.state == .running { g.move_tetro() @@ -226,7 +226,7 @@ fn (g mut Game) run() { } } -fn (g mut Game) move_tetro() { +fn (mut g Game) move_tetro() { // Check each block in current tetro for block in g.tetro { y := block.y + g.pos_y + 1 @@ -250,7 +250,7 @@ fn (g mut Game) move_tetro() { g.pos_y++ } -fn (g mut Game) move_right(dx int) bool { +fn (mut g Game) move_right(dx int) bool { // Reached left/right edge or another tetro? for i in 0..tetro_size { tetro := g.tetro[i] @@ -266,13 +266,13 @@ fn (g mut Game) move_right(dx int) bool { return true } -fn (g mut Game) delete_completed_lines() { +fn (mut g Game) delete_completed_lines() { for y := FieldHeight; y >= 1; y-- { g.delete_completed_line(y) } } -fn (g mut Game) delete_completed_line(y int) { +fn (mut g Game) delete_completed_line(y int) { for x := 1; x <= FieldWidth; x++ { f := g.field[y] if f[x] == 0 { @@ -291,7 +291,7 @@ fn (g mut Game) delete_completed_line(y int) { } // Place a new tetro on top -fn (g mut Game) generate_tetro() { +fn (mut g Game) generate_tetro() { g.pos_y = 0 g.pos_x = FieldWidth / 2 - tetro_size / 2 g.tetro_idx = rand.next(b_tetros.len) @@ -300,7 +300,7 @@ fn (g mut Game) generate_tetro() { } // Get the right tetro from cache -fn (g mut Game) get_tetro() { +fn (mut g Game) get_tetro() { idx := g.tetro_idx * tetro_size * tetro_size + g.rotation_idx * tetro_size g.tetro = g.tetros_cache[idx..idx+tetro_size] } @@ -342,7 +342,7 @@ fn (g &Game) draw_field() { } } -fn (g mut Game) draw_ui() { +fn (mut g Game) draw_ui() { if g.font_loaded { g.ft.draw_text(1, 3, g.score.str(), text_cfg) if g.state == .gameover { @@ -360,7 +360,7 @@ fn (g mut Game) draw_ui() { //g.gg.draw_rect(0, BlockSize, WinWidth, LimitThickness, UIColor) } -fn (g mut Game) draw_scene() { +fn (mut g Game) draw_scene() { g.draw_tetro() g.draw_field() g.draw_ui() diff --git a/examples/vweb/vweb_assets/main.v b/examples/vweb/vweb_assets/main.v index bd6d05b254..70aad5581a 100644 --- a/examples/vweb/vweb_assets/main.v +++ b/examples/vweb/vweb_assets/main.v @@ -17,7 +17,7 @@ fn main() { vweb.run(port) } -pub fn (app mut App) init() { +pub fn (mut app App) init() { // Arbitary mime type. app.vweb.serve_static('/favicon.ico', 'favicon.ico', 'img/x-icon') // Automatically make available known static mime types found in given directory. @@ -27,9 +27,9 @@ pub fn (app mut App) init() { //app.vweb.handle_static('.') } -pub fn (app mut App) reset() {} +pub fn (mut app App) reset() {} -fn (app mut App) index() { +fn (mut app App) index() { // We can dynamically specify which assets are to be used in template. mut am := assets.new_manager() am.add_css('assets/index.css') @@ -42,10 +42,10 @@ fn (app mut App) index() { $vweb.html() } -fn (app mut App) text() { +fn (mut app App) text() { app.vweb.text('Hello, world from vweb!') } -fn (app mut App) time() { +fn (mut app App) time() { app.vweb.text(time.now().format()) } diff --git a/examples/vweb/vweb_example.v b/examples/vweb/vweb_example.v index 50fe1bb625..3d07c7b51c 100644 --- a/examples/vweb/vweb_example.v +++ b/examples/vweb/vweb_example.v @@ -17,27 +17,27 @@ fn main() { vweb.run(port) } -pub fn (app mut App) init() { +pub fn (mut app App) init() { app.vweb.handle_static('.') } -pub fn (app mut App) json_endpoint() { +pub fn (mut app App) json_endpoint() { app.vweb.json('{"a": 3}') } -pub fn (app mut App) index() { +pub fn (mut app App) index() { app.cnt++ $vweb.html() } -pub fn (app mut App) reset() { +pub fn (mut app App) reset() { } -pub fn (app mut App) text() { +pub fn (mut app App) text() { app.vweb.text('Hello world') } -pub fn (app mut App) cookie() { +pub fn (mut app App) cookie() { app.vweb.set_cookie('cookie', 'test') app.vweb.text('Headers: $app.vweb.headers') } diff --git a/tutorials/code/blog/blog.v b/tutorials/code/blog/blog.v index b843bfac0a..2fdb1e72f7 100644 --- a/tutorials/code/blog/blog.v +++ b/tutorials/code/blog/blog.v @@ -15,7 +15,7 @@ fn main() { vweb.run(8080) } -fn (app mut App) index_text() { +fn (mut app App) index_text() { app.vweb.text('Hello, world from vweb!') } @@ -31,7 +31,7 @@ fn (app &App) index() { $vweb.html() } -pub fn (app mut App) init() { +pub fn (mut app App) init() { db := pg.connect(pg.Config{ host: '127.0.0.1' dbname: 'blog' @@ -40,14 +40,14 @@ pub fn (app mut App) init() { app.db = db } -pub fn (app mut App) new() { +pub fn (mut app App) new() { $vweb.html() } -pub fn (app mut App) reset() { +pub fn (mut app App) reset() { } -pub fn (app mut App) new_article() { +pub fn (mut app App) new_article() { title := app.vweb.form['title'] text := app.vweb.form['text'] if title == '' || text == '' { @@ -64,11 +64,11 @@ pub fn (app mut App) new_article() { app.vweb.redirect('/article/') } -pub fn (app mut App) articles() { +pub fn (mut app App) articles() { articles := app.find_all_articles() app.vweb.json(json.encode(articles)) } -fn (app mut App) time() { +fn (mut app App) time() { app.vweb.text(time.now().format()) } diff --git a/vlib/benchmark/benchmark.v b/vlib/benchmark/benchmark.v index 112db9d7fb..650d236ec0 100644 --- a/vlib/benchmark/benchmark.v +++ b/vlib/benchmark/benchmark.v @@ -90,52 +90,52 @@ pub fn new_benchmark_pointer() &Benchmark { } } -pub fn (b mut Benchmark) set_total_expected_steps(n int) { +pub fn (mut b Benchmark) set_total_expected_steps(n int) { b.nexpected_steps = n } -pub fn (b mut Benchmark) stop() { +pub fn (mut b Benchmark) stop() { b.bench_timer.stop() } -pub fn (b mut Benchmark) step() { +pub fn (mut b Benchmark) step() { b.step_timer.restart() if !b.no_cstep { b.cstep++ } } -pub fn (b mut Benchmark) fail() { +pub fn (mut b Benchmark) fail() { b.step_timer.stop() b.ntotal++ b.nfail++ } -pub fn (b mut Benchmark) ok() { +pub fn (mut b Benchmark) ok() { b.step_timer.stop() b.ntotal++ b.nok++ } -pub fn (b mut Benchmark) skip() { +pub fn (mut b Benchmark) skip() { b.step_timer.stop() b.ntotal++ b.nskip++ } -pub fn (b mut Benchmark) fail_many(n int) { +pub fn (mut b Benchmark) fail_many(n int) { b.step_timer.stop() b.ntotal += n b.nfail += n } -pub fn (b mut Benchmark) ok_many(n int) { +pub fn (mut b Benchmark) ok_many(n int) { b.step_timer.stop() b.ntotal += n b.nok += n } -pub fn (b mut Benchmark) neither_fail_nor_ok() { +pub fn (mut b Benchmark) neither_fail_nor_ok() { b.step_timer.stop() } @@ -145,7 +145,7 @@ pub fn start() Benchmark { return b } -pub fn (b mut Benchmark) measure(label string) i64 { +pub fn (mut b Benchmark) measure(label string) i64 { b.ok() res := b.step_timer.elapsed().microseconds() println(b.step_message_with_label(BSPENT, 'in $label')) diff --git a/vlib/bitfield/bitfield.v b/vlib/bitfield/bitfield.v index e9632f366d..69a9dd7a00 100644 --- a/vlib/bitfield/bitfield.v +++ b/vlib/bitfield/bitfield.v @@ -88,7 +88,7 @@ pub fn (instance BitField) get_bit(bitnr int) int { } // set_bit sets bit number 'bit_nr' to 1 (count from 0). -pub fn (instance mut BitField) set_bit(bitnr int) { +pub fn (mut instance BitField) set_bit(bitnr int) { if bitnr >= instance.size { return } @@ -96,7 +96,7 @@ pub fn (instance mut BitField) set_bit(bitnr int) { } // clear_bit clears (sets to zero) bit number 'bit_nr' (count from 0). -pub fn (instance mut BitField) clear_bit(bitnr int) { +pub fn (mut instance BitField) clear_bit(bitnr int) { if bitnr >= instance.size { return } @@ -104,7 +104,7 @@ pub fn (instance mut BitField) clear_bit(bitnr int) { } // set_all sets all bits in the array to 1. -pub fn (instance mut BitField) set_all() { +pub fn (mut instance BitField) set_all() { for i in 0..bitnslots(instance.size) { instance.field[i] = u32(-1) } @@ -112,7 +112,7 @@ pub fn (instance mut BitField) set_all() { } // clear_all clears (sets to zero) all bits in the array. -pub fn (instance mut BitField) clear_all() { +pub fn (mut instance BitField) clear_all() { for i in 0..bitnslots(instance.size) { instance.field[i] = u32(0) } @@ -120,7 +120,7 @@ pub fn (instance mut BitField) clear_all() { // toggle_bit changes the value (from 0 to 1 or from 1 to 0) of bit // number 'bit_nr'. -pub fn (instance mut BitField) toggle_bit(bitnr int) { +pub fn (mut instance BitField) toggle_bit(bitnr int) { if bitnr >= instance.size { return } @@ -390,7 +390,7 @@ pub fn (instance BitField) reverse() BitField { } // resize changes the size of the bit array to 'new_size'. -pub fn (instance mut BitField) resize(new_size int) { +pub fn (mut instance BitField) resize(new_size int) { new_bitnslots := bitnslots(new_size) old_size := instance.size old_bitnslots := bitnslots(old_size) @@ -433,7 +433,7 @@ pub fn (instance BitField) rotate(offset int) BitField { // Internal functions -fn (instance mut BitField) clear_tail() { +fn (mut instance BitField) clear_tail() { tail := instance.size % SLOT_SIZE if tail != 0 { // create a mask for the tail diff --git a/vlib/builtin/array.v b/vlib/builtin/array.v index 969fa38bc3..c7419431eb 100644 --- a/vlib/builtin/array.v +++ b/vlib/builtin/array.v @@ -71,7 +71,7 @@ fn new_array_from_c_array_no_alloc(len, cap, elm_size int, c_array voidptr) arra // Private function. Doubles array capacity if needed [inline] -fn (a mut array) ensure_cap(required int) { +fn (mut a array) ensure_cap(required int) { if required <= a.cap { return } @@ -110,7 +110,7 @@ pub fn (a array) repeat(count int) array { } // array.sort sorts array in-place using given `compare` function as comparator -pub fn (a mut array) sort_with_compare(compare voidptr) { +pub fn (mut a array) sort_with_compare(compare voidptr) { C.qsort(a.data, a.len, a.element_size, compare) } @@ -120,7 +120,7 @@ pub fn (a mut array) sort_with_compare(compare voidptr) { // i := 3 // a.insert(0, &i) // ---------------------------- -pub fn (a mut array) insert(i int, val voidptr) { +pub fn (mut a array) insert(i int, val voidptr) { $if !no_bounds_checking? { if i < 0 || i > a.len { panic('array.insert: index out of range (i == $i, a.len == $a.len)') @@ -136,12 +136,12 @@ pub fn (a mut array) insert(i int, val voidptr) { // TODO array.prepend is broken // It depends on array.insert // ----------------------------- -pub fn (a mut array) prepend(val voidptr) { +pub fn (mut a array) prepend(val voidptr) { a.insert(0, val) } // array.delete deletes array element at the given index -pub fn (a mut array) delete(i int) { +pub fn (mut a array) delete(i int) { $if !no_bounds_checking? { if i < 0 || i >= a.len { panic('array.delete: index out of range (i == $i, a.len == $a.len)') @@ -153,13 +153,13 @@ pub fn (a mut array) delete(i int) { } // clears the array without deallocating the allocated data -pub fn (a mut array) clear() { +pub fn (mut a array) clear() { a.len = 0 } // trims the array length to "index" without modifying the allocated data. If "index" is greater // than len nothing will be changed -pub fn (a mut array) trim(index int) { +pub fn (mut a array) trim(index int) { if index < a.len { a.len = index } @@ -274,7 +274,7 @@ fn (a &array) slice_clone(start, _end int) array { } // Private function. Used to implement assigment to the array element. -fn (a mut array) set(i int, val voidptr) { +fn (mut a array) set(i int, val voidptr) { $if !no_bounds_checking? { if i < 0 || i >= a.len { panic('array.set: index out of range (i == $i, a.len == $a.len)') @@ -283,7 +283,7 @@ fn (a mut array) set(i int, val voidptr) { C.memcpy(byteptr(a.data) + a.element_size * i, val, a.element_size) } -fn (a mut array) push(val voidptr) { +fn (mut a array) push(val voidptr) { a.ensure_cap(a.len + 1) C.memcpy(byteptr(a.data) + a.element_size * a.len, val, a.element_size) a.len++ @@ -291,7 +291,7 @@ fn (a mut array) push(val voidptr) { // `val` is array.data // TODO make private, right now it's used by strings.Builder -pub fn (a3 mut array) push_many(val voidptr, size int) { +pub fn (mut a3 array) push_many(val voidptr, size int) { if a3.data == val { // handle `arr << arr` copy := a3.clone() @@ -392,7 +392,7 @@ fn compare_ints(a, b &int) int { } // []int.sort sorts array of int in place in ascending order. -pub fn (a mut []int) sort() { +pub fn (mut a []int) sort() { a.sort_with_compare(compare_ints) } diff --git a/vlib/builtin/bare/array_bare.v b/vlib/builtin/bare/array_bare.v index a2f8c0c181..3c39d1164e 100644 --- a/vlib/builtin/bare/array_bare.v +++ b/vlib/builtin/bare/array_bare.v @@ -28,7 +28,7 @@ fn (a array) get(i int) voidptr { } // Private function. Used to implement assigment to the array element. -fn (a mut array) set(i int, val voidptr) { +fn (mut a array) set(i int, val voidptr) { if i < 0 || i >= a.len { panic('array.set: index out of range') //FIXME: (i == $i, a.len == $a.len)') } diff --git a/vlib/builtin/js/array.v b/vlib/builtin/js/array.v index 56e6cef8ab..6c9afda12d 100644 --- a/vlib/builtin/js/array.v +++ b/vlib/builtin/js/array.v @@ -47,17 +47,17 @@ pub fn (a array) repeat(nr_repeats int) array { return a } -pub fn (a mut array) sort_with_compare(compare voidptr) { +pub fn (mut a array) sort_with_compare(compare voidptr) { } -pub fn (a mut array) insert(i int, val voidptr) { +pub fn (mut a array) insert(i int, val voidptr) { } -pub fn (a mut array) prepend(val voidptr) { +pub fn (mut a array) prepend(val voidptr) { a.insert(0, val) } -pub fn (a mut array) delete_elm(idx int) { +pub fn (mut a array) delete_elm(idx int) { } /* @@ -132,7 +132,7 @@ pub fn (b []byte) hex() string { return 'sdf' } -pub fn (arr mut array) push_many(val voidptr, size int) { +pub fn (mut arr array) push_many(val voidptr, size int) { } pub fn free(voidptr) { diff --git a/vlib/builtin/js/map.v b/vlib/builtin/js/map.v index 516fb5ae4a..6ea2979870 100644 --- a/vlib/builtin/js/map.v +++ b/vlib/builtin/js/map.v @@ -10,7 +10,7 @@ pub struct map { obj voidptr } -//fn (m mut map) insert(n mut mapnode, key string, val voidptr) { +//fn (mut m map) insert(n mut mapnode, key string, val voidptr) { //} //////fn (n & mapnode) find(key string, out voidptr, element_size int) bool{ @@ -26,7 +26,7 @@ pub struct map { //return 0 //} -pub fn (m mut map) keys() []string { +pub fn (mut m map) keys() []string { return [''] } @@ -34,7 +34,7 @@ fn (m map) get(key string, out voidptr) bool { return false } -pub fn (m mut map) delete(key string) { +pub fn (mut m map) delete(key string) { } fn (m map) exists(key string) bool { diff --git a/vlib/builtin/js/string.v b/vlib/builtin/js/string.v index a64818e3ee..01306a2173 100644 --- a/vlib/builtin/js/string.v +++ b/vlib/builtin/js/string.v @@ -23,8 +23,8 @@ pub fn tos(s byteptr) string { return string{ str: s len: len - } -} + } +} // string.clone_static returns an independent copy of a given array // It should be used only in -autofree generated code. @@ -209,14 +209,14 @@ pub fn (s string) trim_right(cutset string) string { // fn print_cur_thread() { // //C.printf("tid = %08x \n", pthread_self()); // } -pub fn (s mut []string) sort() { - +pub fn (mut s []string) sort() { + } -pub fn (s mut []string) sort_ignore_case() { +pub fn (mut s []string) sort_ignore_case() { } -pub fn (s mut []string) sort_by_len() { +pub fn (mut s []string) sort_by_len() { } fn (s string) at(idx int) byte { diff --git a/vlib/builtin/map.v b/vlib/builtin/map.v index 4752ac3a2c..15b2a9c1de 100644 --- a/vlib/builtin/map.v +++ b/vlib/builtin/map.v @@ -9,7 +9,7 @@ import hash.wyhash fn C.memcmp(byteptr, byteptr, int) int /* -This is a highly optimized hashmap implementation. It has several traits that +This is a highly optimized hashmap implementation. It has several traits that in combination makes it very fast and memory efficient. Here is a short expl- anation of each trait. After reading this you should have a basic understand- ing of how it functions: @@ -22,7 +22,7 @@ resolved by probing. As opposed to linear probing, Robin Hood hashing has a simple but clever twist: As new keys are inserted, old keys are shifted arou- nd in a way such that all keys stay reasonably close to the slot they origin- ally hash to. A new key may displace a key already inserted if its probe cou- -nt is larger than that of the key at the current position. +nt is larger than that of the key at the current position. 3. Memory layout: key-value pairs are stored in a `DenseArray`. This is a dy- namic array with a very low volume of unused memory, at the cost of more rea- @@ -49,7 +49,7 @@ using a well-dispersed hash-function. 5. The hashmap keeps track of the highest probe_count. The trick is to alloc- ate `extra_metas` > max(probe_count), so you never have to do any bounds-che- -cking since the extra meta memory ensures that a meta will never go beyond +cking since the extra meta memory ensures that a meta will never go beyond the last index. 6. Cached rehashing. When the `load_factor` of the map exceeds the `max_load_ @@ -81,7 +81,7 @@ const ( probe_inc = u32(0x01000000) ) -// This function is intended to be fast when +// This function is intended to be fast when // the strings are very likely to be equal // TODO: add branch prediction hints [inline] @@ -119,7 +119,7 @@ fn new_dense_array(value_bytes int) DenseArray { // Push element to array and return index // The growth-factor is roughly 1.125 `(x + (x >> 3))` [inline] -fn (d mut DenseArray) push(key string, value voidptr) u32 { +fn (mut d DenseArray) push(key string, value voidptr) u32 { if d.cap == d.size { d.cap += d.cap >> 3 d.keys = &string(C.realloc(d.keys, sizeof(string) * d.cap)) @@ -144,7 +144,7 @@ fn (d DenseArray) get(i int) voidptr { // Move all zeros to the end of the array // and resize array -fn (d mut DenseArray) zeros_to_end() { +fn (mut d DenseArray) zeros_to_end() { mut tmp_value := malloc(d.value_bytes) mut count := u32(0) for i in 0 .. d.size { @@ -233,7 +233,7 @@ fn (m &map) meta_less(_index u32, _metas u32) (u32,u32) { } [inline] -fn (m mut map) meta_greater(_index u32, _metas u32, kvi u32) { +fn (mut m map) meta_greater(_index u32, _metas u32, kvi u32) { mut meta := _metas mut index := _index mut kv_index := kvi @@ -264,7 +264,7 @@ fn (m mut map) meta_greater(_index u32, _metas u32, kvi u32) { } } -fn (m mut map) set(key string, value voidptr) { +fn (mut m map) set(key string, value voidptr) { load_factor := f32(m.size << 1) / f32(m.cap) if load_factor > max_load_factor { m.expand() @@ -287,7 +287,7 @@ fn (m mut map) set(key string, value voidptr) { } // Doubles the size of the hashmap -fn (m mut map) expand() { +fn (mut m map) expand() { old_cap := m.cap m.cap = ((m.cap + 2) << 1) - 2 // Check if any hashbits are left @@ -302,7 +302,7 @@ fn (m mut map) expand() { } } -fn (m mut map) rehash() { +fn (mut m map) rehash() { meta_bytes := sizeof(u32) * (m.cap + 2 + m.extra_metas) m.metas = &u32(C.realloc(m.metas, meta_bytes)) C.memset(m.metas, 0, meta_bytes) @@ -316,7 +316,7 @@ fn (m mut map) rehash() { } } -fn (m mut map) cached_rehash(old_cap u32) { +fn (mut m map) cached_rehash(old_cap u32) { old_metas := m.metas m.metas = &u32(vcalloc(sizeof(u32) * (m.cap + 2 + m.extra_metas))) old_extra_metas := m.extra_metas @@ -370,7 +370,7 @@ fn (m map) exists(key string) bool { return false } -pub fn (m mut map) delete(key string) { +pub fn (mut m map) delete(key string) { mut index,mut meta := m.key_to_index(key) index,meta = m.meta_less(index, meta) // Perform backwards shifting diff --git a/vlib/builtin/map_test.v b/vlib/builtin/map_test.v index 1474248a5a..223266516a 100644 --- a/vlib/builtin/map_test.v +++ b/vlib/builtin/map_test.v @@ -10,7 +10,7 @@ mut: users map[string]User } -fn (a mut A) set(key string, val int) { +fn (mut a A) set(key string, val int) { a.m[key] = val } diff --git a/vlib/builtin/sorted_map.v b/vlib/builtin/sorted_map.v index 0ece0177f7..ddae014271 100644 --- a/vlib/builtin/sorted_map.v +++ b/vlib/builtin/sorted_map.v @@ -65,7 +65,7 @@ fn new_node() &mapnode { // This implementation does proactive insertion, meaning // that splits are done top-down and not bottom-up. -fn (m mut SortedMap) set(key string, value voidptr) { +fn (mut m SortedMap) set(key string, value voidptr) { mut node := m.root mut child_index := 0 mut parent := &mapnode(0) @@ -112,7 +112,7 @@ fn (m mut SortedMap) set(key string, value voidptr) { } } -fn (n mut mapnode) split_child(child_index int, y mut mapnode) { +fn (mut n mapnode) split_child(child_index int, y mut mapnode) { mut z := new_node() z.size = mid_index y.size = mid_index @@ -186,7 +186,7 @@ fn (n &mapnode) find_key(k string) int { return idx } -fn (n mut mapnode) remove_key(k string) bool { +fn (mut n mapnode) remove_key(k string) bool { idx := n.find_key(k) if idx < n.size && n.keys[idx] == k { if isnil(n.children) { @@ -212,7 +212,7 @@ fn (n mut mapnode) remove_key(k string) bool { } } -fn (n mut mapnode) remove_from_leaf(idx int) { +fn (mut n mapnode) remove_from_leaf(idx int) { for i := idx + 1; i < n.size; i++ { n.keys[i - 1] = n.keys[i] n.values[i - 1] = n.values[i] @@ -220,7 +220,7 @@ fn (n mut mapnode) remove_from_leaf(idx int) { n.size-- } -fn (n mut mapnode) remove_from_non_leaf(idx int) { +fn (mut n mapnode) remove_from_non_leaf(idx int) { k := n.keys[idx] if &mapnode(n.children[idx]).size >= degree { mut current := &mapnode(n.children[idx]) @@ -246,7 +246,7 @@ fn (n mut mapnode) remove_from_non_leaf(idx int) { } } -fn (n mut mapnode) fill(idx int) { +fn (mut n mapnode) fill(idx int) { if idx != 0 && &mapnode(n.children[idx - 1]).size >= degree { n.borrow_from_prev(idx) } else if idx != n.size && &mapnode(n.children[idx + 1]).size >= degree { @@ -258,7 +258,7 @@ fn (n mut mapnode) fill(idx int) { } } -fn (n mut mapnode) borrow_from_prev(idx int) { +fn (mut n mapnode) borrow_from_prev(idx int) { mut child := &mapnode(n.children[idx]) mut sibling := &mapnode(n.children[idx - 1]) for i := child.size - 1; i >= 0; i-- { @@ -281,7 +281,7 @@ fn (n mut mapnode) borrow_from_prev(idx int) { sibling.size-- } -fn (n mut mapnode) borrow_from_next(idx int) { +fn (mut n mapnode) borrow_from_next(idx int) { mut child := &mapnode(n.children[idx]) mut sibling := &mapnode(n.children[idx + 1]) child.keys[child.size] = n.keys[idx] @@ -304,7 +304,7 @@ fn (n mut mapnode) borrow_from_next(idx int) { sibling.size-- } -fn (n mut mapnode) merge(idx int) { +fn (mut n mapnode) merge(idx int) { mut child := &mapnode(n.children[idx]) sibling := &mapnode(n.children[idx + 1]) child.keys[mid_index] = n.keys[idx] @@ -330,7 +330,7 @@ fn (n mut mapnode) merge(idx int) { // free(sibling) } -pub fn (m mut SortedMap) delete(key string) { +pub fn (mut m SortedMap) delete(key string) { if m.root.size == 0 { return } @@ -387,11 +387,11 @@ pub fn (m &SortedMap) keys() []string { return keys } -fn (n mut mapnode) free() { +fn (mut n mapnode) free() { println('TODO') } -pub fn (m mut SortedMap) free() { +pub fn (mut m SortedMap) free() { if isnil(m.root) { return } diff --git a/vlib/builtin/string.v b/vlib/builtin/string.v index 9e6ee8198a..35ec0eea6c 100644 --- a/vlib/builtin/string.v +++ b/vlib/builtin/string.v @@ -222,7 +222,7 @@ fn compare_rep_index(a, b &RepIndex) int { } -fn (a mut []RepIndex) sort() { +fn (mut a []RepIndex) sort() { a.sort_with_compare(compare_rep_index) } @@ -969,15 +969,15 @@ fn compare_lower_strings(a, b &string) int { return compare_strings(aa, bb) } -pub fn (s mut []string) sort() { +pub fn (mut s []string) sort() { s.sort_with_compare(compare_strings) } -pub fn (s mut []string) sort_ignore_case() { +pub fn (mut s []string) sort_ignore_case() { s.sort_with_compare(compare_lower_strings) } -pub fn (s mut []string) sort_by_len() { +pub fn (mut s []string) sort_by_len() { s.sort_with_compare(compare_strings_by_len) } diff --git a/vlib/cli/command.v b/vlib/cli/command.v index 55099a7382..f8e6c9da9f 100644 --- a/vlib/cli/command.v +++ b/vlib/cli/command.v @@ -34,15 +34,15 @@ pub fn (cmd Command) root() Command { return cmd.parent.root() } -pub fn (cmd mut Command) add_command(command Command) { +pub fn (mut cmd Command) add_command(command Command) { cmd.commands << command } -pub fn (cmd mut Command) add_flag(flag Flag) { +pub fn (mut cmd Command) add_flag(flag Flag) { cmd.flags << flag } -pub fn (cmd mut Command) parse(args []string) { +pub fn (mut cmd Command) parse(args []string) { cmd.add_default_flags() cmd.add_default_commands() @@ -55,7 +55,7 @@ pub fn (cmd mut Command) parse(args []string) { cmd.parse_commands() } -fn (cmd mut Command) add_default_flags() { +fn (mut cmd Command) add_default_flags() { if !cmd.disable_help && !cmd.flags.contains('help') && !cmd.flags.contains('h') { cmd.add_flag(help_flag()) } @@ -64,7 +64,7 @@ fn (cmd mut Command) add_default_flags() { } } -fn (cmd mut Command) add_default_commands() { +fn (mut cmd Command) add_default_commands() { if !cmd.disable_help && !cmd.commands.contains('help') { cmd.add_command(help_cmd()) } @@ -73,7 +73,7 @@ fn (cmd mut Command) add_default_commands() { } } -fn (cmd mut Command) parse_flags() { +fn (mut cmd Command) parse_flags() { for { if cmd.args.len < 1 || !cmd.args[0].starts_with('-') { break @@ -137,7 +137,7 @@ fn (cmd &Command) parse_commands() { execute := cmd.execute execute(cmd) // TODO: fix once higher order function can be execute on struct variable - + if int(cmd.post_execute) > 0 { post_execute := cmd.post_execute post_execute(cmd) diff --git a/vlib/cli/flag.v b/vlib/cli/flag.v index 3c9eb6b198..362806cb80 100644 --- a/vlib/cli/flag.v +++ b/vlib/cli/flag.v @@ -64,7 +64,7 @@ pub fn (flags []Flag) get_string_or(name string, or_value string) string { } // parse flag value from arguments and return arguments with all consumed element removed -fn (flag mut Flag) parse(args []string) ?[]string { +fn (mut flag Flag) parse(args []string) ?[]string { if flag.matches(args) { if flag.flag == .bool { new_args := flag.parse_bool(args) or { return error(err) } @@ -85,7 +85,7 @@ fn (flag &Flag) matches(args []string) bool { (flag.abbrev != '' && args[0].starts_with('-${flag.abbrev}')) } -fn (flag mut Flag) parse_raw(args []string) ?[]string { +fn (mut flag Flag) parse_raw(args []string) ?[]string { if args[0].len > flag.name.len && args[0].contains('=') { flag.value = args[0].split('=')[1] return args[1..] @@ -96,7 +96,7 @@ fn (flag mut Flag) parse_raw(args []string) ?[]string { return error('missing argument for ${flag.name}') } -fn (flag mut Flag) parse_bool(args []string) ?[]string { +fn (mut flag Flag) parse_bool(args []string) ?[]string { if args[0].len > flag.name.len && args[0].contains('=') { flag.value = args[0].split('=')[1] return args[1..] diff --git a/vlib/clipboard/clipboard.v b/vlib/clipboard/clipboard.v index d8cc82adb9..6d4ebffac4 100644 --- a/vlib/clipboard/clipboard.v +++ b/vlib/clipboard/clipboard.v @@ -6,22 +6,22 @@ pub fn new() &Clipboard { } // copy some text into the clipboard -pub fn (cb mut Clipboard) copy(text string) bool { +pub fn (mut cb Clipboard) copy(text string) bool { return cb.set_text(text) } // get the text from the clipboard -pub fn (cb mut Clipboard) paste() string { +pub fn (mut cb Clipboard) paste() string { return cb.get_text() } // clear the clipboard -pub fn (cb mut Clipboard) clear_all() { +pub fn (mut cb Clipboard) clear_all() { cb.clear() } // destroy the clipboard -pub fn (cb mut Clipboard) destroy() { +pub fn (mut cb Clipboard) destroy() { cb.free() } diff --git a/vlib/clipboard/clipboard_darwin.c.v b/vlib/clipboard/clipboard_darwin.c.v index 3209b40ba1..e4b383ea3a 100644 --- a/vlib/clipboard/clipboard_darwin.c.v +++ b/vlib/clipboard/clipboard_darwin.c.v @@ -25,12 +25,12 @@ fn (cb &Clipboard) check_availability() bool { return cb.pb != C.NULL } -fn (cb mut Clipboard) clear(){ +fn (mut cb Clipboard) clear(){ cb.foo = 0 #[cb->pb clearContents]; } -fn (cb mut Clipboard) free(){ +fn (mut cb Clipboard) free(){ cb.foo = 0 //nothing to free } @@ -43,7 +43,7 @@ fn (cb &Clipboard) has_ownership() bool { fn C.OSAtomicCompareAndSwapLong() -fn (cb mut Clipboard) set_text(text string) bool { +fn (mut cb Clipboard) set_text(text string) bool { cb.foo = 0 #NSString *ns_clip; ret := false @@ -59,7 +59,7 @@ fn (cb mut Clipboard) set_text(text string) bool { return ret } -fn (cb mut Clipboard) get_text() string { +fn (mut cb Clipboard) get_text() string { cb.foo = 0 #NSString *ns_clip; utf8_clip := byteptr(0) diff --git a/vlib/clipboard/clipboard_linux.c.v b/vlib/clipboard/clipboard_linux.c.v index 96028ff332..e933a4df8f 100644 --- a/vlib/clipboard/clipboard_linux.c.v +++ b/vlib/clipboard/clipboard_linux.c.v @@ -172,14 +172,14 @@ fn (cb &Clipboard) check_availability() bool { return cb.display != C.NULL } -fn (cb mut Clipboard) free() { +fn (mut cb Clipboard) free() { C.XDestroyWindow(cb.display, cb.window) cb.window = C.Window(C.None) //FIX ME: program hangs when closing display //XCloseDisplay(cb.display) } -fn (cb mut Clipboard) clear(){ +fn (mut cb Clipboard) clear(){ cb.mutex.lock() C.XSetSelectionOwner(cb.display, cb.selection, C.Window(C.None), C.CurrentTime) C.XFlush(cb.display) @@ -197,7 +197,7 @@ fn (cb &Clipboard) take_ownership(){ C.XFlush(cb.display) } -fn (cb mut Clipboard) set_text(text string) bool { +fn (mut cb Clipboard) set_text(text string) bool { if cb.window == C.Window(C.None) {return false} cb.mutex.lock() cb.text = text @@ -210,7 +210,7 @@ fn (cb mut Clipboard) set_text(text string) bool { return cb.is_owner } -fn (cb mut Clipboard) get_text() string { +fn (mut cb Clipboard) get_text() string { if cb.window == C.Window(C.None) {return ""} if cb.is_owner { return cb.text @@ -232,7 +232,7 @@ fn (cb mut Clipboard) get_text() string { // this function is crucial to handling all the different data types // if we ever support other mimetypes they should be handled here -fn (cb mut Clipboard) transmit_selection(xse &C.XSelectionEvent) bool { +fn (mut cb Clipboard) transmit_selection(xse &C.XSelectionEvent) bool { if xse.target == cb.get_atom(.targets) { targets := cb.get_supported_targets() C.XChangeProperty(xse.display, xse.requestor, xse.property, cb.get_atom(.xa_atom), 32, C.PropModeReplace, targets.data, targets.len) @@ -246,7 +246,7 @@ fn (cb mut Clipboard) transmit_selection(xse &C.XSelectionEvent) bool { return true } -fn (cb mut Clipboard) start_listener(){ +fn (mut cb Clipboard) start_listener(){ event := C.XEvent{} mut sent_request := false mut to_be_requested := C.Atom(0) @@ -325,7 +325,7 @@ fn (cb mut Clipboard) start_listener(){ // Helpers // Initialize all the atoms we need -fn (cb mut Clipboard) intern_atoms(){ +fn (mut cb Clipboard) intern_atoms(){ cb.atoms << C.Atom(4) //XA_ATOM cb.atoms << C.Atom(31) //XA_STRING for i, name in atom_names{ diff --git a/vlib/clipboard/clipboard_solaris.c.v b/vlib/clipboard/clipboard_solaris.c.v index 4a023207c6..56905b4a44 100644 --- a/vlib/clipboard/clipboard_solaris.c.v +++ b/vlib/clipboard/clipboard_solaris.c.v @@ -17,23 +17,23 @@ pub fn new_primary() &Clipboard { return &Clipboard{} } -fn (cb mut Clipboard) set_text(text string) bool { +fn (mut cb Clipboard) set_text(text string) bool { cb.text = text cb.is_owner = true cb.got_text = true return true } -fn (cb mut Clipboard) get_text() string { +fn (mut cb Clipboard) get_text() string { return cb.text } -fn (cb mut Clipboard) clear(){ +fn (mut cb Clipboard) clear(){ cb.text = '' cb.is_owner = false } -fn (cb mut Clipboard) free(){ +fn (mut cb Clipboard) free(){ } fn (cb &Clipboard) has_ownership() bool { @@ -41,7 +41,7 @@ fn (cb &Clipboard) has_ownership() bool { } fn (cb &Clipboard) check_availability() bool { - // This is a dummy clipboard implementation, + // This is a dummy clipboard implementation, // which can be always used, although it does not do much... return true } diff --git a/vlib/crypto/aes/aes_cbc.v b/vlib/crypto/aes/aes_cbc.v index c270694112..99ef4e8418 100644 --- a/vlib/crypto/aes/aes_cbc.v +++ b/vlib/crypto/aes/aes_cbc.v @@ -79,7 +79,7 @@ pub fn (x &AesCbc) encrypt_blocks(dst mut []byte, src_ []byte) { copy(x.iv, iv) } -pub fn (x mut AesCbc) decrypt_blocks(dst mut []byte, src []byte) { +pub fn (mut x AesCbc) decrypt_blocks(dst mut []byte, src []byte) { if src.len%x.block_size != 0 { panic('crypto.cipher: input not full blocks') } diff --git a/vlib/crypto/md5/md5.v b/vlib/crypto/md5/md5.v index 63e7b32366..c7e003d6f3 100644 --- a/vlib/crypto/md5/md5.v +++ b/vlib/crypto/md5/md5.v @@ -37,7 +37,7 @@ mut: len u64 } -fn (d mut Digest) reset() { +fn (mut d Digest) reset() { d.s = [u32(0)].repeat(4) d.x = [byte(0)].repeat(block_size) d.s[0] = u32(init0) @@ -55,7 +55,7 @@ pub fn new() &Digest { return d } -pub fn (d mut Digest) write(p_ []byte) int { +pub fn (mut d Digest) write(p_ []byte) int { mut p := p_ nn := p.len d.len += u64(nn) @@ -98,7 +98,7 @@ pub fn (d &Digest) sum(b_in []byte) []byte { return b_out } -pub fn (d mut Digest) checksum() []byte { +pub fn (mut d Digest) checksum() []byte { // Append 0x80 to the end of the message and then append zeros // until the length is a multiple of 56 bytes. Finally append // 8 bytes representing the message length in bits. diff --git a/vlib/crypto/rc4/rc4.v b/vlib/crypto/rc4/rc4.v index e818889f41..4c7d2f3d63 100644 --- a/vlib/crypto/rc4/rc4.v +++ b/vlib/crypto/rc4/rc4.v @@ -49,7 +49,7 @@ pub fn new_cipher(key []byte) ?Cipher { // // Deprecated: Reset can't guarantee that the key will be entirely removed from // the process's memory. -pub fn (c mut Cipher) reset() { +pub fn (mut c Cipher) reset() { for i in c.s { c.s[i] = 0 } @@ -59,7 +59,7 @@ pub fn (c mut Cipher) reset() { // xor_key_stream sets dst to the result of XORing src with the key stream. // Dst and src must overlap entirely or not at all. -pub fn (c mut Cipher) xor_key_stream(dst mut []byte, src []byte) { +pub fn (mut c Cipher) xor_key_stream(dst mut []byte, src []byte) { if src.len == 0 { return } diff --git a/vlib/crypto/sha1/sha1.v b/vlib/crypto/sha1/sha1.v index 3c1fab064a..e7fbbe6884 100644 --- a/vlib/crypto/sha1/sha1.v +++ b/vlib/crypto/sha1/sha1.v @@ -39,7 +39,7 @@ mut: len u64 } -fn (d mut Digest) reset() { +fn (mut d Digest) reset() { d.x = [byte(0)].repeat(chunk) d.h = [u32(0)].repeat(5) d.h[0] = u32(init0) @@ -58,7 +58,7 @@ pub fn new() &Digest { return d } -pub fn (d mut Digest) write(p_ []byte) int { +pub fn (mut d Digest) write(p_ []byte) int { mut p := p_ nn := p.len d.len += u64(nn) @@ -102,7 +102,7 @@ pub fn (d &Digest) sum(b_in []byte) []byte { return b_out } -fn (d mut Digest) checksum() []byte { +fn (mut d Digest) checksum() []byte { mut len := d.len // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. mut tmp := [byte(0)].repeat(64) diff --git a/vlib/crypto/sha256/sha256.v b/vlib/crypto/sha256/sha256.v index 66b31b60b3..f39dbacba8 100644 --- a/vlib/crypto/sha256/sha256.v +++ b/vlib/crypto/sha256/sha256.v @@ -51,7 +51,7 @@ mut: is224 bool // mark if this digest is SHA-224 } -fn (d mut Digest) reset() { +fn (mut d Digest) reset() { d.h = [u32(0)].repeat(8) d.x = [byte(0)].repeat(chunk) if !d.is224 { @@ -92,7 +92,7 @@ pub fn new224() &Digest { return d } -fn (d mut Digest) write(p_ []byte) int { +fn (mut d Digest) write(p_ []byte) int { mut p := p_ nn := p.len d.len += u64(nn) @@ -141,7 +141,7 @@ fn (d &Digest) sum(b_in []byte) []byte { return b_out } -fn (d mut Digest) checksum() []byte { +fn (mut d Digest) checksum() []byte { mut len := d.len // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. mut tmp := [byte(0)].repeat(64) diff --git a/vlib/crypto/sha512/sha512.v b/vlib/crypto/sha512/sha512.v index 0f6e290737..377481ad68 100644 --- a/vlib/crypto/sha512/sha512.v +++ b/vlib/crypto/sha512/sha512.v @@ -69,7 +69,7 @@ mut: function crypto.Hash } -fn (d mut Digest) reset() { +fn (mut d Digest) reset() { d.h = [u64(0)].repeat(8) d.x = [byte(0)].repeat(chunk) match d.function { @@ -146,7 +146,7 @@ fn new384() &Digest { return new_digest(.sha384) } -fn (d mut Digest) write(p_ []byte) int { +fn (mut d Digest) write(p_ []byte) int { mut p := p_ nn := p.len d.len += u64(nn) @@ -209,7 +209,7 @@ fn (d &Digest) sum(b_in []byte) []byte { return b_out } -fn (d mut Digest) checksum() []byte { +fn (mut d Digest) checksum() []byte { // Padding. Add a 1 bit and 0 bits until 112 bytes mod 128. mut len := d.len mut tmp := [byte(0)].repeat(128) diff --git a/vlib/encoding/csv/reader.v b/vlib/encoding/csv/reader.v index a434fb8277..5bf012221b 100644 --- a/vlib/encoding/csv/reader.v +++ b/vlib/encoding/csv/reader.v @@ -37,7 +37,7 @@ pub fn new_reader(data string) &Reader { } // read() reads one row from the csv file -pub fn (r mut Reader) read() ?[]string { +pub fn (mut r Reader) read() ?[]string { l := r.read_record() or { return error(err) } @@ -45,7 +45,7 @@ pub fn (r mut Reader) read() ?[]string { } // Once we have multi dimensional array -// pub fn (r mut Reader) read_all() ?[][]string { +// pub fn (mut r Reader) read_all() ?[][]string { // mut records := []string{} // for { // record := r.read_record() or { @@ -60,7 +60,7 @@ pub fn (r mut Reader) read() ?[]string { // return records // } -fn (r mut Reader) read_line() ?string { +fn (mut r Reader) read_line() ?string { // last record if r.row_pos == r.data.len { return err_eof @@ -91,7 +91,7 @@ fn (r mut Reader) read_line() ?string { return line } -fn (r mut Reader) read_record() ?[]string { +fn (mut r Reader) read_record() ?[]string { if r.delimiter == r.comment { return err_comment_is_delim } diff --git a/vlib/encoding/csv/writer.v b/vlib/encoding/csv/writer.v index 08b5040cd5..5aba0cffbd 100644 --- a/vlib/encoding/csv/writer.v +++ b/vlib/encoding/csv/writer.v @@ -21,7 +21,7 @@ pub fn new_writer() &Writer { } // write writes a single record -pub fn (w mut Writer) write(record []string) ?bool { +pub fn (mut w Writer) write(record []string) ?bool { if !valid_delim(w.delimiter) { return err_invalid_delim } @@ -86,6 +86,6 @@ fn (w &Writer) field_needs_quotes(field string) bool { return false } -pub fn (w mut Writer) str() string { +pub fn (mut w Writer) str() string { return w.sb.str() } diff --git a/vlib/eventbus/eventbus.v b/vlib/eventbus/eventbus.v index 0daf83dd06..66dbc6588e 100644 --- a/vlib/eventbus/eventbus.v +++ b/vlib/eventbus/eventbus.v @@ -59,7 +59,7 @@ pub fn (eb &EventBus) has_subscriber(name string) bool { } // Publisher Methods -fn (pb mut Publisher) publish(name string, sender voidptr, args voidptr) { +fn (mut pb Publisher) publish(name string, sender voidptr, args voidptr) { for i, event in pb.registry.events { if event.name == name { if event.once { @@ -74,7 +74,7 @@ fn (pb mut Publisher) publish(name string, sender voidptr, args voidptr) { } } -fn (p mut Publisher) clear_all() { +fn (mut p Publisher) clear_all() { if p.registry.events.len == 0 { return } @@ -84,7 +84,7 @@ fn (p mut Publisher) clear_all() { } // Subscriber Methods -pub fn (s mut Subscriber) subscribe(name string, handler EventHandlerFn) { +pub fn (mut s Subscriber) subscribe(name string, handler EventHandlerFn) { s.registry.events << EventHandler { name: name handler: handler @@ -92,7 +92,7 @@ pub fn (s mut Subscriber) subscribe(name string, handler EventHandlerFn) { } } -pub fn (s mut Subscriber) subscribe_method(name string, handler EventHandlerFn, receiver voidptr) { +pub fn (mut s Subscriber) subscribe_method(name string, handler EventHandlerFn, receiver voidptr) { s.registry.events << EventHandler { name: name handler: handler @@ -100,7 +100,7 @@ pub fn (s mut Subscriber) subscribe_method(name string, handler EventHandlerFn, } } -pub fn (s mut Subscriber) subscribe_once(name string, handler EventHandlerFn) { +pub fn (mut s Subscriber) subscribe_once(name string, handler EventHandlerFn) { s.registry.events << EventHandler { name: name handler: handler @@ -113,7 +113,7 @@ pub fn (s &Subscriber) is_subscribed(name string) bool { return s.registry.check_subscriber(name) } -pub fn (s mut Subscriber) unsubscribe(name string, handler EventHandlerFn) { +pub fn (mut s Subscriber) unsubscribe(name string, handler EventHandlerFn) { // v := voidptr(handler) for i, event in s.registry.events { if event.name == name { diff --git a/vlib/flag/flag.v b/vlib/flag/flag.v index a92d7ee993..678137477e 100644 --- a/vlib/flag/flag.v +++ b/vlib/flag/flag.v @@ -100,27 +100,27 @@ pub fn new_flag_parser(args []string) &FlagParser { } // change the application name to be used in 'usage' output -pub fn (fs mut FlagParser) application(name string) { +pub fn (mut fs FlagParser) application(name string) { fs.application_name = name } // change the application version to be used in 'usage' output -pub fn (fs mut FlagParser) version(vers string) { +pub fn (mut fs FlagParser) version(vers string) { fs.application_version = vers } // change the application version to be used in 'usage' output -pub fn (fs mut FlagParser) description(desc string) { +pub fn (mut fs FlagParser) description(desc string) { fs.application_description = desc } // in most cases you do not need the first argv for flag parsing -pub fn (fs mut FlagParser) skip_executable() { +pub fn (mut fs FlagParser) skip_executable() { fs.args.delete(0) } // private helper to register a flag -fn (fs mut FlagParser) add_flag(name string, abbr byte, usage string, desc string) { +fn (mut fs FlagParser) add_flag(name string, abbr byte, usage string, desc string) { fs.flags << Flag{ name: name, abbr: abbr, @@ -138,7 +138,7 @@ fn (fs mut FlagParser) add_flag(name string, abbr byte, usage string, desc strin // // - the name, usage are registered // - found arguments and corresponding values are removed from args list -fn (fs mut FlagParser) parse_value(longhand string, shorthand byte) []string { +fn (mut fs FlagParser) parse_value(longhand string, shorthand byte) []string { full := '--$longhand' mut found_entries := []string{} mut to_delete := []int{} @@ -190,7 +190,7 @@ fn (fs mut FlagParser) parse_value(longhand string, shorthand byte) []string { // special: it is allowed to define bool flags without value // -> '--flag' is parsed as true // -> '--flag' is equal to '--flag=true' -fn (fs mut FlagParser) parse_bool_value(longhand string, shorthand byte) ?string { +fn (mut fs FlagParser) parse_bool_value(longhand string, shorthand byte) ?string { full := '--$longhand' for i, arg in fs.args { if arg == '--' { @@ -230,7 +230,7 @@ fn (fs mut FlagParser) parse_bool_value(longhand string, shorthand byte) ?string // bool_opt returns an optional that returns the value associated with the flag. // In the situation that the flag was not provided, it returns null. -pub fn (fs mut FlagParser) bool_opt(name string, abbr byte, usage string) ?bool { +pub fn (mut fs FlagParser) bool_opt(name string, abbr byte, usage string) ?bool { fs.add_flag(name, abbr, usage, '') parsed := fs.parse_bool_value(name, abbr) or { return error("parameter '$name' not provided") @@ -245,7 +245,7 @@ pub fn (fs mut FlagParser) bool_opt(name string, abbr byte, usage string) ?bool // the default value is returned // version with abbr //TODO error handling for invalid string to bool conversion -pub fn (fs mut FlagParser) bool(name string, abbr byte, bdefault bool, usage string) bool { +pub fn (mut fs FlagParser) bool(name string, abbr byte, bdefault bool, usage string) bool { value := fs.bool_opt(name, abbr, usage) or { return bdefault } @@ -254,7 +254,7 @@ pub fn (fs mut FlagParser) bool(name string, abbr byte, bdefault bool, usage str // int_multi returns all instances of values associated with the flags provided // In the case that none were found, it returns an empty array. -pub fn (fs mut FlagParser) int_multi(name string, abbr byte, usage string) []int { +pub fn (mut fs FlagParser) int_multi(name string, abbr byte, usage string) []int { fs.add_flag(name, abbr, usage, '') parsed := fs.parse_value(name, abbr) mut value := []int{} @@ -266,7 +266,7 @@ pub fn (fs mut FlagParser) int_multi(name string, abbr byte, usage string) []int // int_opt returns an optional that returns the value associated with the flag. // In the situation that the flag was not provided, it returns null. -pub fn (fs mut FlagParser) int_opt(name string, abbr byte, usage string) ?int { +pub fn (mut fs FlagParser) int_opt(name string, abbr byte, usage string) ?int { fs.add_flag(name, abbr, usage, '') parsed := fs.parse_value(name, abbr) if parsed.len == 0 { @@ -282,7 +282,7 @@ pub fn (fs mut FlagParser) int_opt(name string, abbr byte, usage string) ?int { // the default value is returned // version with abbr //TODO error handling for invalid string to int conversion -pub fn (fs mut FlagParser) int(name string, abbr byte, idefault int, usage string) int { +pub fn (mut fs FlagParser) int(name string, abbr byte, idefault int, usage string) int { value := fs.int_opt(name, abbr, usage) or { return idefault } @@ -291,7 +291,7 @@ pub fn (fs mut FlagParser) int(name string, abbr byte, idefault int, usage strin // float_multi returns all instances of values associated with the flags provided // In the case that none were found, it returns an empty array. -pub fn (fs mut FlagParser) float_multi(name string, abbr byte, usage string) []f64 { +pub fn (mut fs FlagParser) float_multi(name string, abbr byte, usage string) []f64 { fs.add_flag(name, abbr, usage, '') parsed := fs.parse_value(name, abbr) mut value := []f64{} @@ -303,7 +303,7 @@ pub fn (fs mut FlagParser) float_multi(name string, abbr byte, usage string) []f // float_opt returns an optional that returns the value associated with the flag. // In the situation that the flag was not provided, it returns null. -pub fn (fs mut FlagParser) float_opt(name string, abbr byte, usage string) ?f64 { +pub fn (mut fs FlagParser) float_opt(name string, abbr byte, usage string) ?f64 { fs.add_flag(name, abbr, usage, '') parsed := fs.parse_value(name, abbr) if parsed.len == 0 { @@ -319,7 +319,7 @@ pub fn (fs mut FlagParser) float_opt(name string, abbr byte, usage string) ?f64 // the default value is returned // version with abbr //TODO error handling for invalid string to float conversion -pub fn (fs mut FlagParser) float(name string, abbr byte, fdefault f64, usage string) f64 { +pub fn (mut fs FlagParser) float(name string, abbr byte, fdefault f64, usage string) f64 { value := fs.float_opt(name, abbr, usage) or { return fdefault } @@ -328,14 +328,14 @@ pub fn (fs mut FlagParser) float(name string, abbr byte, fdefault f64, usage str // string_multi returns all instances of values associated with the flags provided // In the case that none were found, it returns an empty array. -pub fn (fs mut FlagParser) string_multi(name string, abbr byte, usage string) []string { +pub fn (mut fs FlagParser) string_multi(name string, abbr byte, usage string) []string { fs.add_flag(name, abbr, usage, '') return fs.parse_value(name, abbr) } // string_opt returns an optional that returns the value associated with the flag. // In the situation that the flag was not provided, it returns null. -pub fn (fs mut FlagParser) string_opt(name string, abbr byte, usage string) ?string { +pub fn (mut fs FlagParser) string_opt(name string, abbr byte, usage string) ?string { fs.add_flag(name, abbr, usage, '') parsed := fs.parse_value(name, abbr) if parsed.len == 0 { @@ -350,14 +350,14 @@ pub fn (fs mut FlagParser) string_opt(name string, abbr byte, usage string) ?str // else // the default value is returned // version with abbr -pub fn (fs mut FlagParser) string(name string, abbr byte, sdefault string, usage string) string { +pub fn (mut fs FlagParser) string(name string, abbr byte, sdefault string, usage string) string { value := fs.string_opt(name, abbr, usage) or { return sdefault } return value } -pub fn (fs mut FlagParser) limit_free_args_to_at_least(n int) { +pub fn (mut fs FlagParser) limit_free_args_to_at_least(n int) { if n > MAX_ARGS_NUMBER { panic('flag.limit_free_args_to_at_least expect n to be smaller than $MAX_ARGS_NUMBER') } @@ -367,7 +367,7 @@ pub fn (fs mut FlagParser) limit_free_args_to_at_least(n int) { fs.min_free_args = n } -pub fn (fs mut FlagParser) limit_free_args_to_exactly(n int) { +pub fn (mut fs FlagParser) limit_free_args_to_exactly(n int) { if n > MAX_ARGS_NUMBER { panic('flag.limit_free_args_to_exactly expect n to be smaller than $MAX_ARGS_NUMBER') } @@ -380,7 +380,7 @@ pub fn (fs mut FlagParser) limit_free_args_to_exactly(n int) { // this will cause an error in finalize() if free args are out of range // (min, ..., max) -pub fn (fs mut FlagParser) limit_free_args(min, max int) { +pub fn (mut fs FlagParser) limit_free_args(min, max int) { if min > max { panic('flag.limit_free_args expect min < max, got $min >= $max') } @@ -388,7 +388,7 @@ pub fn (fs mut FlagParser) limit_free_args(min, max int) { fs.max_free_args = max } -pub fn (fs mut FlagParser) arguments_description(description string){ +pub fn (mut fs FlagParser) arguments_description(description string){ fs.args_description = description } diff --git a/vlib/gg/gg.v b/vlib/gg/gg.v index 251e30636d..0fd181b42d 100644 --- a/vlib/gg/gg.v +++ b/vlib/gg/gg.v @@ -236,7 +236,7 @@ pub fn set_mode_fill() { } /* -fn (ctx mut GG) init_rect_vao() { +fn (mut ctx GG) init_rect_vao() { ctx.rect_vao = gl.gen_vertex_array() ctx.rect_vbo = gl.gen_buffer() @@ -421,7 +421,7 @@ pub fn (ctx &GG) draw_line(x, y, x2, y2 f32, color gx.Color) { } pub fn (ctx &GG) draw_arc(x, y, r, start_angle, end_angle f32, segments int, color gx.Color) { - ctx.use_color_shader(color) + ctx.use_color_shader(color) vertices := arc_vertices(x, y, r, start_angle, end_angle, segments) ctx.bind_vertices(vertices) gl.draw_arrays(C.GL_LINE_STRIP, 0, segments + 1) @@ -431,7 +431,7 @@ pub fn (ctx &GG) draw_arc(x, y, r, start_angle, end_angle f32, segments int, col pub fn (ctx &GG) draw_filled_arc(x, y, r, start_angle, end_angle f32, segments int, color gx.Color) { ctx.use_color_shader(color) - + mut vertices := []f32{} vertices << [x, y] ! vertices << arc_vertices(x, y, r, start_angle, end_angle, segments) diff --git a/vlib/gg2/gg.v b/vlib/gg2/gg.v index 3b755c7a07..a2ff04d90f 100644 --- a/vlib/gg2/gg.v +++ b/vlib/gg2/gg.v @@ -124,7 +124,7 @@ pub fn (ctx &GG) draw_text_def(x, y int, text string) { ctx.draw_text(x, y, text, cfg) } -pub fn (gg mut GG) init_font() { +pub fn (mut gg GG) init_font() { // TODO gg.fons =g_fons gg.font_normal=g_font_normal diff --git a/vlib/glfw/glfw.v b/vlib/glfw/glfw.v index c68eeb66ec..c95102b307 100644 --- a/vlib/glfw/glfw.v +++ b/vlib/glfw/glfw.v @@ -233,19 +233,19 @@ pub fn (w &Window) swap_buffers() { C.glfwSwapBuffers(w.data) } -pub fn (w mut Window) onmousemove(cb voidptr) { +pub fn (mut w Window) onmousemove(cb voidptr) { C.glfwSetCursorPosCallback(w.data, cb) } -pub fn (w mut Window) set_mouse_button_callback(cb voidptr) { +pub fn (mut w Window) set_mouse_button_callback(cb voidptr) { C.glfwSetMouseButtonCallback(w.data, cb) } -pub fn (w mut Window) on_resize(cb voidptr) { +pub fn (mut w Window) on_resize(cb voidptr) { C.glfwSetWindowSizeCallback(w.data, cb) } -pub fn (w mut Window) on_click(cb voidptr) { +pub fn (mut w Window) on_click(cb voidptr) { C.glfwSetMouseButtonCallback(w.data, cb) } @@ -261,11 +261,11 @@ pub fn post_empty_event() { C.glfwPostEmptyEvent() } -pub fn (w mut Window) onkeydown(cb voidptr) { +pub fn (mut w Window) onkeydown(cb voidptr) { C.glfwSetKeyCallback(w.data, cb) } -pub fn (w mut Window) onchar(cb voidptr) { +pub fn (mut w Window) onchar(cb voidptr) { C.glfwSetCharModsCallback(w.data, cb) } diff --git a/vlib/hash/crc32/crc32.v b/vlib/hash/crc32/crc32.v index 5ddd796452..5ab8ef2353 100644 --- a/vlib/hash/crc32/crc32.v +++ b/vlib/hash/crc32/crc32.v @@ -23,7 +23,7 @@ mut: table []u32 } -fn(c mut Crc32) generate_table(poly int) { +fn(mut c Crc32) generate_table(poly int) { for i in 0..256 { mut crc := u32(i) for _ in 0..8 { diff --git a/vlib/log/log.v b/vlib/log/log.v index 4df86e2126..1472293bb7 100644 --- a/vlib/log/log.v +++ b/vlib/log/log.v @@ -40,25 +40,25 @@ pub mut: output_file_name string } -pub fn (l mut Log) set_level(level Level) { +pub fn (mut l Log) set_level(level Level) { l.level = level } -pub fn (l mut Log) set_output_level(level Level) { +pub fn (mut l Log) set_output_level(level Level) { l.level = level } -pub fn (l mut Log) set_full_logpath(full_log_path string) { +pub fn (mut l Log) set_full_logpath(full_log_path string) { rlog_file := os.real_path( full_log_path ) l.set_output_label( os.file_name( rlog_file ) ) l.set_output_path( os.base_dir( rlog_file ) ) } -pub fn (l mut Log) set_output_label(label string){ +pub fn (mut l Log) set_output_label(label string){ l.output_label = label } -pub fn (l mut Log) set_output_path(output_file_path string) { +pub fn (mut l Log) set_output_path(output_file_path string) { if l.ofile.is_opened() { l.ofile.close() } l.output_to_file = true l.output_file_name = os.join_path( os.real_path( output_file_path ) , l.output_label ) @@ -68,11 +68,11 @@ pub fn (l mut Log) set_output_path(output_file_path string) { l.ofile = ofile } -pub fn (l mut Log) close() { +pub fn (mut l Log) close() { l.ofile.close() } -fn (l mut Log) log_file(s string, level Level) { +fn (mut l Log) log_file(s string, level Level) { timestamp := time.now().format_ss() e := tag(level) l.ofile.writeln('$timestamp [$e] $s') @@ -84,7 +84,7 @@ fn (l &Log) log_cli(s string, level Level) { println('[$f ${t.format_ss()}] $s') } -fn (l mut Log) send_output(s &string, level Level) { +fn (mut l Log) send_output(s &string, level Level) { if l.output_to_file { l.log_file(s, level) } else { @@ -92,29 +92,29 @@ fn (l mut Log) send_output(s &string, level Level) { } } -pub fn (l mut Log) fatal(s string){ +pub fn (mut l Log) fatal(s string){ if l.level < .fatal { return } l.send_output(s, .fatal) l.ofile.close() panic('$l.output_label: $s') } -pub fn (l mut Log) error(s string) { +pub fn (mut l Log) error(s string) { if l.level < .error { return } l.send_output(s, .error) } -pub fn (l mut Log) warn(s string) { +pub fn (mut l Log) warn(s string) { if l.level < .warn { return } l.send_output(s, .warn) } -pub fn (l mut Log) info(s string) { +pub fn (mut l Log) info(s string) { if l.level < .info { return } l.send_output(s, .info) } -pub fn (l mut Log) debug(s string) { +pub fn (mut l Log) debug(s string) { if l.level < .debug { return } l.send_output(s, .debug) } diff --git a/vlib/math/big/big.v b/vlib/math/big/big.v index 3c16a22ad3..25b1906c5f 100644 --- a/vlib/math/big/big.v +++ b/vlib/math/big/big.v @@ -124,10 +124,10 @@ pub fn cmp(a Number, b Number) int { pub fn (a Number) is_zero() bool { return C.bignum_is_zero(&a) != 0 } -pub fn (a mut Number) inc() { +pub fn (mut a Number) inc() { C.bignum_inc(a) } -pub fn (a mut Number) dec() { +pub fn (mut a Number) dec() { C.bignum_dec(a) } pub fn pow(a Number, b Number) Number { diff --git a/vlib/mysql/mysql.v b/vlib/mysql/mysql.v index b19ae99466..e9461677a4 100644 --- a/vlib/mysql/mysql.v +++ b/vlib/mysql/mysql.v @@ -23,7 +23,7 @@ pub fn new_connection(host, username, password, dbname string) ?Connection { return Connection{ host, 0, username, password, dbname, 0, instance } } -pub fn (conn mut Connection) connect() ?bool { +pub fn (mut conn Connection) connect() ?bool { mut instance := C.mysql_init(0) if !isnil(conn.conn) { instance = conn.conn diff --git a/vlib/net/http/chunked/dechunk.v b/vlib/net/http/chunked/dechunk.v index b51f956a55..ad1197d2aa 100644 --- a/vlib/net/http/chunked/dechunk.v +++ b/vlib/net/http/chunked/dechunk.v @@ -13,7 +13,7 @@ mut: text string } -fn (s mut ChunkScanner) read_chunk_size() int { +fn (mut s ChunkScanner) read_chunk_size() int { mut n := 0 for { if s.pos >= s.text.len { @@ -43,11 +43,11 @@ fn unhex(c byte) byte { return 0 } -fn (s mut ChunkScanner) skip_crlf() { +fn (mut s ChunkScanner) skip_crlf() { s.pos += 2 } -fn (s mut ChunkScanner) read_chunk(chunksize int) string { +fn (mut s ChunkScanner) read_chunk(chunksize int) string { startpos := s.pos s.pos += chunksize return s.text[startpos..s.pos] @@ -71,4 +71,3 @@ pub fn decode(text string) string { cscanner.skip_crlf() return sb.str() } - diff --git a/vlib/net/urllib/urllib.v b/vlib/net/urllib/urllib.v index 6ef5d277f0..cef458ebfe 100644 --- a/vlib/net/urllib/urllib.v +++ b/vlib/net/urllib/urllib.v @@ -651,7 +651,7 @@ fn parse_host(host string) ?string { // - set_path('/foo%2fbar') will set path='/foo/bar' and raw_path='/foo%2fbar' // set_path will return an error only if the provided path contains an invalid // escaping. -pub fn (u mut URL) set_path(p string) ?bool { +pub fn (mut u URL) set_path(p string) ?bool { path := unescape(p, .encode_path) or { return error(err) } diff --git a/vlib/net/urllib/values.v b/vlib/net/urllib/values.v index 506df5a850..c05187a4b1 100644 --- a/vlib/net/urllib/values.v +++ b/vlib/net/urllib/values.v @@ -61,7 +61,7 @@ pub fn (v &Values) get_all(key string) []string { // set sets the key to value. It replaces any existing // values. -pub fn (v mut Values) set(key, value string) { +pub fn (mut v Values) set(key, value string) { mut a := v.data[key] a.data = [value] v.data[key] = a @@ -70,7 +70,7 @@ pub fn (v mut Values) set(key, value string) { // add adds the value to key. It appends to any existing // values associated with key. -pub fn (v mut Values) add(key, value string) { +pub fn (mut v Values) add(key, value string) { mut a := v.data[key] if a.data.len == 0 { a.data = [] @@ -81,8 +81,7 @@ pub fn (v mut Values) add(key, value string) { } // del deletes the values associated with key. -pub fn (v mut Values) del(key string) { +pub fn (mut v Values) del(key string) { v.data.delete(key) v.size = v.data.size } - diff --git a/vlib/net/websocket/handshake.v b/vlib/net/websocket/handshake.v index 8fe3beb0b3..9335f2b096 100644 --- a/vlib/net/websocket/handshake.v +++ b/vlib/net/websocket/handshake.v @@ -1,6 +1,6 @@ module websocket -fn (ws mut Client) read_handshake(seckey string){ +fn (mut ws Client) read_handshake(seckey string){ l.d("reading handshake...") mut bytes_read := 0 max_buffer := 1024 @@ -9,7 +9,7 @@ fn (ws mut Client) read_handshake(seckey string){ for bytes_read <= max_buffer { res := ws.read_from_server(buffer + bytes_read, buffer_size) - if res == 0 || res == -1 { + if res == 0 || res == -1 { l.f("read_handshake: Failed to read handshake.") } if buffer[bytes_read] == `\n` && buffer[bytes_read-1] == `\r` && buffer[bytes_read-2] == `\n` && buffer[bytes_read-3] == `\r` { @@ -21,10 +21,10 @@ fn (ws mut Client) read_handshake(seckey string){ ws.handshake_handler(string(byteptr(buffer)), seckey) } -fn (ws mut Client) handshake_handler(handshake_response, seckey string){ +fn (mut ws Client) handshake_handler(handshake_response, seckey string){ l.d("handshake_handler:\r\n${handshake_response}") lines := handshake_response.split_into_lines() - + header := lines[0] if !header.starts_with("HTTP/1.1 101") && !header.starts_with("HTTP/1.0 101") { l.f("handshake_handler: invalid HTTP status response code") diff --git a/vlib/net/websocket/io.v b/vlib/net/websocket/io.v index 4f67a10af4..7e1f20095b 100644 --- a/vlib/net/websocket/io.v +++ b/vlib/net/websocket/io.v @@ -2,13 +2,13 @@ module websocket fn C.write() int -fn (ws mut Client) write_to_server(buf voidptr, len int) int { +fn (mut ws Client) write_to_server(buf voidptr, len int) int { mut bytes_written := 0 ws.write_lock.lock() bytes_written = if ws.is_ssl { C.SSL_write(ws.ssl, buf, len) } else { - C.write(ws.socket.sockfd, buf, len) + C.write(ws.socket.sockfd, buf, len) } ws.write_lock.unlock() return bytes_written diff --git a/vlib/net/websocket/ssl.v b/vlib/net/websocket/ssl.v index 09036efa41..9c6b8dc856 100644 --- a/vlib/net/websocket/ssl.v +++ b/vlib/net/websocket/ssl.v @@ -21,7 +21,7 @@ fn C.SSL_CTX_free() fn C.SSL_write() int fn C.SSL_read() int -fn (ws mut Client) connect_ssl(){ +fn (mut ws Client) connect_ssl(){ l.i("Using secure SSL connection") C.SSL_load_error_strings() C.SSL_library_init() diff --git a/vlib/net/websocket/utf8.v b/vlib/net/websocket/utf8.v index 0aee273285..468f7e264b 100644 --- a/vlib/net/websocket/utf8.v +++ b/vlib/net/websocket/utf8.v @@ -23,7 +23,7 @@ pub fn utf8_validate(data byteptr, len int) bool { return !state.failed && state.subindex <= 0 } -fn (s mut Utf8State) seq(r0 bool, r1 bool, is_tail bool) bool { +fn (mut s Utf8State) seq(r0 bool, r1 bool, is_tail bool) bool { if s.subindex == 0 || (s.index > 1 && s.subindex == 1) || (s.index >= 6 && s.subindex == 2) { if (s.subindex == 0 && r0) || (s.subindex == 1 && r1) || (s.subindex == 2 && is_tail) { s.subindex++ @@ -46,7 +46,7 @@ fn (s mut Utf8State) seq(r0 bool, r1 bool, is_tail bool) bool { return false } -fn (s mut Utf8State) next_state (c byte) { +fn (mut s Utf8State) next_state (c byte) { //sequence 1 if s.index == 0 { if (c >= 0x00 + 1 && c <= 0x7F) || c == 0x00 { @@ -58,7 +58,7 @@ fn (s mut Utf8State) next_state (c byte) { is_tail := c >= 0x80 && c <= 0xBF //sequence 2 if s.index == 1 && s.seq(c >= 0xC2 && c <= 0xDF, false, is_tail) {return} - + //sequence 3 if s.index == 2 && s.seq(c == 0xE0, c >= 0xA0 && c <= 0xBF, is_tail) {return} if s.index == 3 && s.seq(c >= 0xE1 && c <= 0xEC, c >= 0x80 && c <= 0xBF, is_tail) {return} diff --git a/vlib/net/websocket/ws.v b/vlib/net/websocket/ws.v index 18854800bd..f68d2e2639 100644 --- a/vlib/net/websocket/ws.v +++ b/vlib/net/websocket/ws.v @@ -115,7 +115,7 @@ fn (ws &Client) parse_uri() &Uri { } } -pub fn (ws mut Client) connect() int { +pub fn (mut ws Client) connect() int { match ws.state { .connected { l.f("connect: websocket already connected") @@ -191,7 +191,7 @@ pub fn (ws mut Client) connect() int { return 0 } -pub fn (ws mut Client) close(code int, message string){ +pub fn (mut ws Client) close(code int, message string){ if ws.state != .closed && ws.socket.sockfd > 1 { ws.lock.lock() @@ -248,7 +248,7 @@ pub fn (ws mut Client) close(code int, message string){ } } -pub fn (ws mut Client) write(payload byteptr, payload_len int, code OPCode) int { +pub fn (mut ws Client) write(payload byteptr, payload_len int, code OPCode) int { if ws.state != .open { ws.send_error_event("WebSocket closed. Cannot write.") goto free_data @@ -319,7 +319,7 @@ pub fn (ws mut Client) write(payload byteptr, payload_len int, code OPCode) int return bytes_written } -pub fn (ws mut Client) listen() { +pub fn (mut ws Client) listen() { l.i("Starting listener...") for ws.state == .open { ws.read() @@ -327,7 +327,7 @@ pub fn (ws mut Client) listen() { l.i("Listener stopped as websocket was closed.") } -pub fn (ws mut Client) read() int { +pub fn (mut ws Client) read() int { mut bytes_read := u64(0) initial_buffer := u64(256) @@ -601,7 +601,7 @@ pub fn (ws mut Client) read() int { return -1 } -fn (ws mut Client) send_control_frame(code OPCode, frame_typ string, payload []byte) int { +fn (mut ws Client) send_control_frame(code OPCode, frame_typ string, payload []byte) int { if ws.socket.sockfd <= 0 { l.e("No socket opened.") goto free_data diff --git a/vlib/os/os.v b/vlib/os/os.v index 44d79ed9fb..807514e28e 100644 --- a/vlib/os/os.v +++ b/vlib/os/os.v @@ -325,7 +325,7 @@ pub fn open_file(path string, mode string, options ...int) ?File { } } -pub fn (f mut File) write_bytes_at(data voidptr, size, pos int) { +pub fn (mut f File) write_bytes_at(data voidptr, size, pos int) { //$if linux { //} //$else { @@ -335,7 +335,7 @@ pub fn (f mut File) write_bytes_at(data voidptr, size, pos int) { //} } -pub fn (f mut File) flush() { +pub fn (mut f File) flush() { if !f.opened { return } diff --git a/vlib/os/os_nix.c.v b/vlib/os/os_nix.c.v index 1bdccd3ed6..c4b91e6139 100644 --- a/vlib/os/os_nix.c.v +++ b/vlib/os/os_nix.c.v @@ -128,12 +128,12 @@ pub fn create(path string) ?File { } /* -pub fn (f mut File) fseek(pos, mode int) { +pub fn (mut f File) fseek(pos, mode int) { } */ -pub fn (f mut File) write(s string) { +pub fn (mut f File) write(s string) { if !f.opened { return } @@ -149,7 +149,7 @@ pub fn (f mut File) write(s string) { // C.fwrite(s.str, 1, s.len, f.cfile) } -pub fn (f mut File) writeln(s string) { +pub fn (mut f File) writeln(s string) { if !f.opened { return } @@ -237,7 +237,7 @@ pub fn get_error_msg(code int) string { // convert any value to []byte (LittleEndian) and write it // for example if we have write(7, 4), "07 00 00 00" gets written // write(0x1234, 2) => "34 12" -pub fn (f mut File) write_bytes(data voidptr, size int) { +pub fn (mut f File) write_bytes(data voidptr, size int) { /* $if linux { $if !android { @@ -249,7 +249,7 @@ pub fn (f mut File) write_bytes(data voidptr, size int) { C.fwrite(data, 1, size, f.cfile) } -pub fn (f mut File) close() { +pub fn (mut f File) close() { if !f.opened { return } diff --git a/vlib/os/os_windows.c.v b/vlib/os/os_windows.c.v index 48ba63e11d..73167bf25b 100644 --- a/vlib/os/os_windows.c.v +++ b/vlib/os/os_windows.c.v @@ -155,14 +155,14 @@ pub fn create(path string) ?File { return file } -pub fn (f mut File) write(s string) { +pub fn (mut f File) write(s string) { if !f.opened { return } C.fputs(s.str, f.cfile) } -pub fn (f mut File) writeln(s string) { +pub fn (mut f File) writeln(s string) { if !f.opened { return } @@ -344,11 +344,11 @@ pub fn symlink(origin, target string) ?bool { return error(get_error_msg(int(C.GetLastError()))) } -pub fn (f mut File) write_bytes(data voidptr, size int) { +pub fn (mut f File) write_bytes(data voidptr, size int) { C.fwrite(data, 1, size, f.cfile) } -pub fn (f mut File) close() { +pub fn (mut f File) close() { if !f.opened { return } diff --git a/vlib/picohttpparser/request.v b/vlib/picohttpparser/request.v index 8addc232b4..eec3c33a00 100644 --- a/vlib/picohttpparser/request.v +++ b/vlib/picohttpparser/request.v @@ -9,7 +9,7 @@ mut: } [inline] -pub fn (r mut Request) parse_request(s string, headers *C.phr_header_t, max_headers int) int { +pub fn (mut r Request) parse_request(s string, headers *C.phr_header_t, max_headers int) int { method_len := u64(0) path_len := u64(0) minor_version := 0 @@ -33,7 +33,7 @@ pub fn (r mut Request) parse_request(s string, headers *C.phr_header_t, max_head } [inline] -pub fn (r mut Request) parse_request_path(s string) int { +pub fn (mut r Request) parse_request_path(s string) int { method_len := u64(0) path_len := u64(0) @@ -50,7 +50,7 @@ pub fn (r mut Request) parse_request_path(s string) int { } [inline] -pub fn (r mut Request) parse_request_path_pipeline(s string) int { +pub fn (mut r Request) parse_request_path_pipeline(s string) int { method_len := u64(0) path_len := u64(0) diff --git a/vlib/picohttpparser/response.v b/vlib/picohttpparser/response.v index 2540fb7943..a7b914124e 100644 --- a/vlib/picohttpparser/response.v +++ b/vlib/picohttpparser/response.v @@ -10,13 +10,13 @@ mut: } [inline] -pub fn (r mut Response) http_ok() &Response { +pub fn (mut r Response) http_ok() &Response { r.buf += cpy_str(r.buf, "HTTP/1.1 200 OK\r\n") return r } [inline] -pub fn (r mut Response) header(k, v string) &Response { +pub fn (mut r Response) header(k, v string) &Response { r.buf += cpy_str(r.buf, k) r.buf += cpy_str(r.buf, ": ") r.buf += cpy_str(r.buf, v) @@ -25,7 +25,7 @@ pub fn (r mut Response) header(k, v string) &Response { } [inline] -pub fn (r mut Response) header_date() &Response { +pub fn (mut r Response) header_date() &Response { r.buf += cpy_str(r.buf, "Date: ") r.buf += cpy(r.buf, r.date, 29) r.buf += cpy_str(r.buf, "\r\n") @@ -33,13 +33,13 @@ pub fn (r mut Response) header_date() &Response { } [inline] -pub fn (r mut Response) header_server() &Response { +pub fn (mut r Response) header_server() &Response { r.buf += cpy_str(r.buf, "Server: V\r\n") return r } [inline] -pub fn (r mut Response) content_type(s string) &Response { +pub fn (mut r Response) content_type(s string) &Response { r.buf += cpy_str(r.buf, "Content-Type: ") r.buf += cpy_str(r.buf, s) r.buf += cpy_str(r.buf, "\r\n") @@ -47,19 +47,19 @@ pub fn (r mut Response) content_type(s string) &Response { } [inline] -pub fn (r mut Response) plain() &Response { +pub fn (mut r Response) plain() &Response { r.buf += cpy_str(r.buf, "Content-Type: text/plain\r\n") return r } [inline] -pub fn (r mut Response) json() &Response { +pub fn (mut r Response) json() &Response { r.buf += cpy_str(r.buf, "Content-Type: application/json\r\n") return r } [inline] -pub fn (r mut Response) body(body string) { +pub fn (mut r Response) body(body string) { r.buf += cpy_str(r.buf, "Content-Length: ") r.buf += C.u64toa(r.buf, body.len) r.buf += cpy_str(r.buf, "\r\n\r\n") @@ -67,27 +67,27 @@ pub fn (r mut Response) body(body string) { } [inline] -pub fn (r mut Response) http_404() { +pub fn (mut r Response) http_404() { r.buf += cpy_str(r.buf, 'HTTP/1.1 404 Not Found\r\nContent-Length: 0\r\n\r\n') } [inline] -pub fn (r mut Response) http_405() { +pub fn (mut r Response) http_405() { r.buf += cpy_str(r.buf, 'HTTP/1.1 405 Method Not Allowed\r\nContent-Length: 0\r\n\r\n') } [inline] -pub fn (r mut Response) http_500() { +pub fn (mut r Response) http_500() { r.buf += cpy_str(r.buf, 'HTTP/1.1 500 Internal Server Error\r\nContent-Length: 0\r\n\r\n') } [inline] -pub fn (r mut Response) raw(response string) { +pub fn (mut r Response) raw(response string) { r.buf += cpy_str(r.buf, response) } [inline] -pub fn (r mut Response) end() int { +pub fn (mut r Response) end() int { n := int(r.buf - r.buf_start) if C.write(r.fd, r.buf_start, n) != n { return -1 diff --git a/vlib/rand/pcg32.v b/vlib/rand/pcg32.v index d7e008e4cf..84c25c2c69 100644 --- a/vlib/rand/pcg32.v +++ b/vlib/rand/pcg32.v @@ -33,7 +33,7 @@ pub fn new_pcg32(initstate u64, initseq u64) Pcg32 { [inline] -pub fn (rng mut Pcg32) next() u32 { +pub fn (mut rng Pcg32) next() u32 { oldstate := rng.state rng.state = oldstate * (6364136223846793005) + rng.inc xorshifted := u32(((oldstate>>u64(18)) ^ oldstate)>>u64(27)) @@ -49,7 +49,7 @@ pub fn (rng mut Pcg32) next() u32 { [inline] -pub fn (rng mut Pcg32) bounded_next(bound u32) u32 { +pub fn (mut rng Pcg32) bounded_next(bound u32) u32 { // To avoid bias, we need to make the range of the RNG a multiple of // bound, which we do by dropping output less than a threshold. threshold := (-bound % bound) @@ -66,4 +66,3 @@ pub fn (rng mut Pcg32) bounded_next(bound u32) u32 { } return u32(0) } - diff --git a/vlib/rand/splitmix64.v b/vlib/rand/splitmix64.v index f5c8145750..c1c26099a6 100644 --- a/vlib/rand/splitmix64.v +++ b/vlib/rand/splitmix64.v @@ -24,7 +24,7 @@ pub fn new_splitmix64(seed u64) Splitmix64 { [inline] -pub fn (rng mut Splitmix64) next() u64 { +pub fn (mut rng Splitmix64) next() u64 { rng.state += (0x9e3779b97f4a7c15) mut z := rng.state z = (z ^ ((z>>u64(30)))) * (0xbf58476d1ce4e5b9) @@ -40,7 +40,7 @@ pub fn (rng mut Splitmix64) next() u64 { [inline] -pub fn (rng mut Splitmix64) bounded_next(bound u64) u64 { +pub fn (mut rng Splitmix64) bounded_next(bound u64) u64 { threshold := -bound % bound for { r := rng.next() @@ -50,4 +50,3 @@ pub fn (rng mut Splitmix64) bounded_next(bound u64) u64 { } return u64(0) } - diff --git a/vlib/readline/readline.js.v b/vlib/readline/readline.js.v index 19a2926ef9..cf5a613fbb 100644 --- a/vlib/readline/readline.js.v +++ b/vlib/readline/readline.js.v @@ -13,7 +13,7 @@ import os // Only use standard os.get_line // Need implementation for readline capabilities -pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { +pub fn (mut r Readline) read_line_utf8(prompt string) ?ustring { r.current = ''.ustring() r.cursor = 0 r.prompt = prompt @@ -38,7 +38,7 @@ pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { } // Returns the string from the utf8 ustring -pub fn (r mut Readline) read_line(prompt string) ?string { +pub fn (mut r Readline) read_line(prompt string) ?string { s := r.read_line_utf8(prompt) or { return error(err) } diff --git a/vlib/readline/readline_darwin.c.v b/vlib/readline/readline_darwin.c.v index 9c0cfeb5b2..e82e4d976d 100644 --- a/vlib/readline/readline_darwin.c.v +++ b/vlib/readline/readline_darwin.c.v @@ -15,7 +15,7 @@ import os // Only use standard os.get_line // Need implementation for readline capabilities -pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { +pub fn (mut r Readline) read_line_utf8(prompt string) ?ustring { r.current = ''.ustring() r.cursor = 0 r.prompt = prompt @@ -43,7 +43,7 @@ pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { } // Returns the string from the utf8 ustring -pub fn (r mut Readline) read_line(prompt string) ?string { +pub fn (mut r Readline) read_line(prompt string) ?string { s := r.read_line_utf8(prompt) or { return error(err) } diff --git a/vlib/readline/readline_linux.c.v b/vlib/readline/readline_linux.c.v index 4dca991c32..a472c4a800 100644 --- a/vlib/readline/readline_linux.c.v +++ b/vlib/readline/readline_linux.c.v @@ -42,7 +42,7 @@ fn C.raise() // Enable the raw mode of the terminal // In raw mode all keypresses are directly sent to the program and no interpretation is done // Catches the SIGUSER (CTRL+C) Signal -pub fn (r mut Readline) enable_raw_mode() { +pub fn (mut r Readline) enable_raw_mode() { if C.tcgetattr(0, &r.orig_termios) == -1 { r.is_tty = false r.is_raw = false @@ -61,7 +61,7 @@ pub fn (r mut Readline) enable_raw_mode() { // Enable the raw mode of the terminal // Does not catch the SIGUSER (CTRL+C) Signal -pub fn (r mut Readline) enable_raw_mode_nosig() { +pub fn (mut r Readline) enable_raw_mode_nosig() { if C.tcgetattr(0, &r.orig_termios) == -1 { r.is_tty = false r.is_raw = false @@ -79,7 +79,7 @@ pub fn (r mut Readline) enable_raw_mode_nosig() { } // Disable the raw mode of the terminal -pub fn (r mut Readline) disable_raw_mode() { +pub fn (mut r Readline) disable_raw_mode() { if r.is_raw { C.tcsetattr(0, C.TCSADRAIN, &r.orig_termios) r.is_raw = false @@ -95,7 +95,7 @@ pub fn (r Readline) read_char() int { // Will loop and ingest characters until EOF or Enter // Returns the completed line as utf8 ustring // Will return an error if line is empty -pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { +pub fn (mut r Readline) read_line_utf8(prompt string) ?ustring { r.current = ''.ustring() r.cursor = 0 r.prompt = prompt @@ -132,7 +132,7 @@ pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { } // Returns the string from the utf8 ustring -pub fn (r mut Readline) read_line(prompt string) ?string { +pub fn (mut r Readline) read_line(prompt string) ?string { s := r.read_line_utf8(prompt) or { return error(err) } @@ -272,7 +272,7 @@ fn (r Readline) analyse_extended_control_no_eat(last_c byte) Action { return .nothing } -fn (r mut Readline) execute(a Action, c int) bool { +fn (mut r Readline) execute(a Action, c int) bool { match a { .eof { return r.eof() } .insert_character { r.insert_character(c) } @@ -336,7 +336,7 @@ fn calculate_screen_position(x_in int, y_in int, screen_columns int, char_count } // Will redraw the line -fn (r mut Readline) refresh_line() { +fn (mut r Readline) refresh_line() { mut end_of_input := [0, 0] end_of_input = calculate_screen_position(r.prompt.len, 0, get_screen_columns(), r.current.len, end_of_input) end_of_input[1] += r.current.count('\n'.ustring()) @@ -355,7 +355,7 @@ fn (r mut Readline) refresh_line() { } // End the line without a newline -fn (r mut Readline) eof() bool { +fn (mut r Readline) eof() bool { r.previous_lines.insert(1, r.current) r.cursor = r.current.len if r.is_tty { @@ -364,7 +364,7 @@ fn (r mut Readline) eof() bool { return true } -fn (r mut Readline) insert_character(c int) { +fn (mut r Readline) insert_character(c int) { if !r.overwrite || r.cursor == r.current.len { r.current = r.current.left(r.cursor).ustring().add( utf32_to_str(u32(c)).ustring() ).add( r.current.right(r.cursor).ustring() ) } else { @@ -378,7 +378,7 @@ fn (r mut Readline) insert_character(c int) { } // Removes the character behind cursor. -fn (r mut Readline) delete_character() { +fn (mut r Readline) delete_character() { if r.cursor <= 0 { return } @@ -388,7 +388,7 @@ fn (r mut Readline) delete_character() { } // Removes the character in front of cursor. -fn (r mut Readline) suppr_character() { +fn (mut r Readline) suppr_character() { if r.cursor > r.current.len { return } @@ -397,7 +397,7 @@ fn (r mut Readline) suppr_character() { } // Add a line break then stops the main loop -fn (r mut Readline) commit_line() bool { +fn (mut r Readline) commit_line() bool { r.previous_lines.insert(1, r.current) a := '\n'.ustring() r.current = r.current.add( a ) @@ -409,26 +409,26 @@ fn (r mut Readline) commit_line() bool { return true } -fn (r mut Readline) move_cursor_left() { +fn (mut r Readline) move_cursor_left() { if r.cursor > 0 { r.cursor-- r.refresh_line() } } -fn (r mut Readline) move_cursor_right() { +fn (mut r Readline) move_cursor_right() { if r.cursor < r.current.len { r.cursor++ r.refresh_line() } } -fn (r mut Readline) move_cursor_begining() { +fn (mut r Readline) move_cursor_begining() { r.cursor = 0 r.refresh_line() } -fn (r mut Readline) move_cursor_end() { +fn (mut r Readline) move_cursor_end() { r.cursor = r.current.len r.refresh_line() } @@ -439,7 +439,7 @@ fn (r Readline) is_break_character(c string) bool { return break_characters.contains(c) } -fn (r mut Readline) move_cursor_word_left() { +fn (mut r Readline) move_cursor_word_left() { if r.cursor > 0 { for ; r.cursor > 0 && r.is_break_character(r.current.at(r.cursor - 1)); r.cursor-- {} for ; r.cursor > 0 && !r.is_break_character(r.current.at(r.cursor - 1)); r.cursor-- {} @@ -447,7 +447,7 @@ fn (r mut Readline) move_cursor_word_left() { } } -fn (r mut Readline) move_cursor_word_right() { +fn (mut r Readline) move_cursor_word_right() { if r.cursor < r.current.len { for ; r.cursor < r.current.len && r.is_break_character(r.current.at(r.cursor)); r.cursor++ {} for ; r.cursor < r.current.len && !r.is_break_character(r.current.at(r.cursor)); r.cursor++ {} @@ -455,17 +455,17 @@ fn (r mut Readline) move_cursor_word_right() { } } -fn (r mut Readline) switch_overwrite() { +fn (mut r Readline) switch_overwrite() { r.overwrite = !r.overwrite } -fn (r mut Readline) clear_screen() { +fn (mut r Readline) clear_screen() { term.set_cursor_position(1, 1) term.erase_clear() r.refresh_line() } -fn (r mut Readline) history_previous() { +fn (mut r Readline) history_previous() { if r.search_index + 2 >= r.previous_lines.len { return } @@ -478,7 +478,7 @@ fn (r mut Readline) history_previous() { r.refresh_line() } -fn (r mut Readline) history_next() { +fn (mut r Readline) history_next() { if r.search_index <= 0 { return } @@ -488,7 +488,7 @@ fn (r mut Readline) history_next() { r.refresh_line() } -fn (r mut Readline) suspend() { +fn (mut r Readline) suspend() { C.raise(C.SIGSTOP) r.refresh_line() } diff --git a/vlib/readline/readline_solaris.c.v b/vlib/readline/readline_solaris.c.v index 9c0cfeb5b2..e82e4d976d 100644 --- a/vlib/readline/readline_solaris.c.v +++ b/vlib/readline/readline_solaris.c.v @@ -15,7 +15,7 @@ import os // Only use standard os.get_line // Need implementation for readline capabilities -pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { +pub fn (mut r Readline) read_line_utf8(prompt string) ?ustring { r.current = ''.ustring() r.cursor = 0 r.prompt = prompt @@ -43,7 +43,7 @@ pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { } // Returns the string from the utf8 ustring -pub fn (r mut Readline) read_line(prompt string) ?string { +pub fn (mut r Readline) read_line(prompt string) ?string { s := r.read_line_utf8(prompt) or { return error(err) } diff --git a/vlib/readline/readline_windows.c.v b/vlib/readline/readline_windows.c.v index 62b679a77b..34f29b9a93 100644 --- a/vlib/readline/readline_windows.c.v +++ b/vlib/readline/readline_windows.c.v @@ -13,7 +13,7 @@ import os // Only use standard os.get_line // Need implementation for readline capabilities -pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { +pub fn (mut r Readline) read_line_utf8(prompt string) ?ustring { r.current = ''.ustring() r.cursor = 0 r.prompt = prompt @@ -38,7 +38,7 @@ pub fn (r mut Readline) read_line_utf8(prompt string) ?ustring { } // Returns the string from the utf8 ustring -pub fn (r mut Readline) read_line(prompt string) ?string { +pub fn (mut r Readline) read_line(prompt string) ?string { s := r.read_line_utf8(prompt) or { return error(err) } diff --git a/vlib/regex/regex.v b/vlib/regex/regex.v index 8805ad51b1..d7ee1af84b 100644 --- a/vlib/regex/regex.v +++ b/vlib/regex/regex.v @@ -262,7 +262,7 @@ mut: } [inline] -fn (tok mut Token) reset() { +fn (mut tok Token) reset() { tok.rep = 0 } @@ -330,7 +330,7 @@ pub mut: // Reset RE object //[inline] -fn (re mut RE) reset(){ +fn (mut re RE) reset(){ re.cc_index = 0 mut i := 0 @@ -352,7 +352,7 @@ fn (re mut RE) reset(){ // reset for search mode fail // gcc bug, dont use [inline] or go 5 time slower -fn (re mut RE) reset_src(){ +fn (mut re RE) reset_src(){ mut i := 0 for i < re.prog.len { re.prog[i].group_rep = 0 // clear repetition of the group @@ -544,7 +544,7 @@ fn (re RE) check_char_class(pc int, ch u32) bool { } // parse_char_class return (index, str_len, cc_type) of a char class [abcm-p], char class start after the [ char -fn (re mut RE) parse_char_class(in_txt string, in_i int) (int, int, u32) { +fn (mut re RE) parse_char_class(in_txt string, in_i int) (int, int, u32) { mut status := CharClass_parse_state.start mut i := in_i @@ -897,7 +897,7 @@ fn (re RE) parse_groups(in_txt string, in_i int) (int, bool, string, int) { // main compiler // // compile return (return code, index) where index is the index of the error in the query string if return code is an error code -pub fn (re mut RE) compile(in_txt string) (int,int) { +pub fn (mut re RE) compile(in_txt string) (int,int) { mut i := 0 // input string index mut pc := 0 // program counter mut tmp_code := u32(0) @@ -1467,7 +1467,7 @@ pub mut: match_first int = -1 } -pub fn (re mut RE) match_base(in_txt byteptr, in_txt_len int ) (int,int) { +pub fn (mut re RE) match_base(in_txt byteptr, in_txt_len int ) (int,int) { // result status mut result := NO_MATCH_FOUND // function return mut first_match := -1 //index of the first match @@ -1595,7 +1595,7 @@ pub fn (re mut RE) match_base(in_txt byteptr, in_txt_len int ) (int,int) { tmp_pc := group_data[group_index] re.prog[tmp_pc].group_rep++ //println("Closing group $group_index {${re.prog[tmp_pc].rep_min},${re.prog[tmp_pc].rep_max}}:${re.prog[tmp_pc].group_rep}") - + if re.prog[tmp_pc].group_rep >= re.prog[tmp_pc].rep_min && re.prog[tmp_pc].group_id >= 0{ start_i := group_stack[group_index] group_stack[group_index]=-1 @@ -2201,7 +2201,7 @@ pub fn new_regex_by_size(mult int) RE { // Matchers // -pub fn (re mut RE) match_string(in_txt string) (int,int) { +pub fn (mut re RE) match_string(in_txt string) (int,int) { start, end := re.match_base(in_txt.str,in_txt.len) if start >= 0 && end > start { if (re.flag & F_MS) != 0 && start > 0 { @@ -2223,7 +2223,7 @@ pub fn (re mut RE) match_string(in_txt string) (int,int) { // // find try to find the first match in the input string -pub fn (re mut RE) find(in_txt string) (int,int) { +pub fn (mut re RE) find(in_txt string) (int,int) { old_flag := re.flag re.flag |= F_SRC // enable search mode start, end := re.match_base(in_txt.str, in_txt.len) @@ -2235,7 +2235,7 @@ pub fn (re mut RE) find(in_txt string) (int,int) { } // find all the non overlapping occurrences of the match pattern -pub fn (re mut RE) find_all(in_txt string) []int { +pub fn (mut re RE) find_all(in_txt string) []int { mut i := 0 mut res := []int{} mut ls := -1 @@ -2257,7 +2257,7 @@ pub fn (re mut RE) find_all(in_txt string) []int { } // replace return a string where the matches are replaced with the replace string -pub fn (re mut RE) replace(in_txt string, repl string) string { +pub fn (mut re RE) replace(in_txt string, repl string) string { pos := re.find_all(in_txt) if pos.len > 0 { mut res := "" diff --git a/vlib/sokol/gfx/gfx_structs.v b/vlib/sokol/gfx/gfx_structs.v index 04fdb790e8..a729052136 100644 --- a/vlib/sokol/gfx/gfx_structs.v +++ b/vlib/sokol/gfx/gfx_structs.v @@ -61,11 +61,11 @@ pub mut: _end_canary u32 } -pub fn (b mut C.sg_bindings) set_vert_image(index int, img C.sg_image) { +pub fn (mut b C.sg_bindings) set_vert_image(index int, img C.sg_image) { b.vs_images[index] = img } -pub fn (b mut C.sg_bindings) set_frag_image(index int, img C.sg_image) { +pub fn (mut b C.sg_bindings) set_frag_image(index int, img C.sg_image) { b.fs_images[index] = img } @@ -96,45 +96,45 @@ pub mut: _end_canary u32 } -pub fn (desc mut C.sg_shader_desc) set_vert_src(src string) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_vert_src(src string) &C.sg_shader_desc { desc.vs.source = src.str return desc } -pub fn (desc mut C.sg_shader_desc) set_frag_src(src string) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_frag_src(src string) &C.sg_shader_desc { desc.fs.source = src.str return desc } -pub fn (desc mut C.sg_shader_desc) set_vert_image(index int, name string) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_vert_image(index int, name string) &C.sg_shader_desc { desc.vs.images[index].name = name.str desc.vs.images[index].@type = ._2d return desc } -pub fn (desc mut C.sg_shader_desc) set_frag_image(index int, name string) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_frag_image(index int, name string) &C.sg_shader_desc { desc.fs.images[index].name = name.str desc.fs.images[index].@type = ._2d return desc } -pub fn (desc mut C.sg_shader_desc) set_vert_uniform_block_size(block_index, size int) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_vert_uniform_block_size(block_index, size int) &C.sg_shader_desc { desc.vs.uniform_blocks[block_index].size = size return desc } -pub fn (desc mut C.sg_shader_desc) set_frag_uniform_block_size(block_index, size int) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_frag_uniform_block_size(block_index, size int) &C.sg_shader_desc { desc.fs.uniform_blocks[block_index].size = size return desc } -pub fn (desc mut C.sg_shader_desc) set_vert_uniform(block_index int, uniform_index int, name string, @type UniformType, array_count int) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_vert_uniform(block_index int, uniform_index int, name string, @type UniformType, array_count int) &C.sg_shader_desc { desc.vs.uniform_blocks[block_index].uniforms[uniform_index].name = name.str desc.vs.uniform_blocks[block_index].uniforms[uniform_index].@type = @type return desc } -pub fn (desc mut C.sg_shader_desc) set_frag_uniform(block_index int, uniform_index int, name string, @type UniformType, array_count int) &C.sg_shader_desc { +pub fn (mut desc C.sg_shader_desc) set_frag_uniform(block_index int, uniform_index int, name string, @type UniformType, array_count int) &C.sg_shader_desc { desc.fs.uniform_blocks[block_index].uniforms[uniform_index].name = name.str desc.fs.uniform_blocks[block_index].uniforms[uniform_index].@type = @type return desc @@ -162,7 +162,7 @@ pub mut: images [12]C.sg_shader_image_desc } -pub fn (desc mut C.sg_shader_stage_desc) set_image(index int, name string) C.sg_shader_stage_desc { +pub fn (mut desc C.sg_shader_stage_desc) set_image(index int, name string) C.sg_shader_stage_desc { desc.images[index].name = name.str desc.images[index].@type = ._2d return desc @@ -416,7 +416,7 @@ pub mut: } /* -pub fn (action mut C.sg_color_attachment_action) set_color_values(r, g, b, a f32) { +pub fn (mut action C.sg_color_attachment_action) set_color_values(r, g, b, a f32) { action.val[0] = r action.val[1] = g action.val[2] = b diff --git a/vlib/strings/builder.c.v b/vlib/strings/builder.c.v index fbb2211321..108016ff72 100644 --- a/vlib/strings/builder.c.v +++ b/vlib/strings/builder.c.v @@ -20,17 +20,17 @@ pub fn new_builder(initial_size int) Builder { } } -pub fn (b mut Builder) write_bytes(bytes byteptr, howmany int) { +pub fn (mut b Builder) write_bytes(bytes byteptr, howmany int) { b.buf.push_many(bytes, howmany) b.len += howmany } -pub fn (b mut Builder) write_b(data byte) { +pub fn (mut b Builder) write_b(data byte) { b.buf << data b.len++ } -pub fn (b mut Builder) write(s string) { +pub fn (mut b Builder) write(s string) { if s == '' { return } @@ -42,17 +42,17 @@ pub fn (b mut Builder) write(s string) { b.len += s.len } -pub fn (b mut Builder) go_back(n int) { +pub fn (mut b Builder) go_back(n int) { b.buf.trim(b.buf.len-n) b.len -= n } -pub fn (b mut Builder) go_back_to(pos int) { +pub fn (mut b Builder) go_back_to(pos int) { b.buf.trim(pos) b.len = pos } -pub fn (b mut Builder) writeln(s string) { +pub fn (mut b Builder) writeln(s string) { // for c in s { // b.buf << c // } @@ -86,7 +86,7 @@ pub fn (b &Builder) after(n int) string { // NB: in order to avoid memleaks and additional memory copies, after a call to b.str(), // the builder b will be empty. The returned string *owns* the accumulated data so far. -pub fn (b mut Builder) str() string { +pub fn (mut b Builder) str() string { b.str_calls++ if b.str_calls > 1 { panic('builder.str() should be called just once.\n' + @@ -100,7 +100,7 @@ pub fn (b mut Builder) str() string { return s } -pub fn (b mut Builder) free() { +pub fn (mut b Builder) free() { unsafe{ free(b.buf.data) } diff --git a/vlib/strings/builder.js.v b/vlib/strings/builder.js.v index 77dc3cd476..d66483ff80 100644 --- a/vlib/strings/builder.js.v +++ b/vlib/strings/builder.js.v @@ -19,18 +19,18 @@ pub fn new_builder(initial_size int) Builder { } } -pub fn (b mut Builder) write_b(data byte) { +pub fn (mut b Builder) write_b(data byte) { b.buf << data b.len++ } -pub fn (b mut Builder) write(s string) { +pub fn (mut b Builder) write(s string) { b.buf.push_many(s.str, s.len) //b.buf << []byte(s) // TODO b.len += s.len } -pub fn (b mut Builder) writeln(s string) { +pub fn (mut b Builder) writeln(s string) { b.buf.push_many(s.str, s.len) //b.buf << []byte(s) // TODO b.buf << `\n` @@ -41,11 +41,11 @@ pub fn (b Builder) str() string { return string(b.buf, b.len) } -pub fn (b mut Builder) cut(n int) { +pub fn (mut b Builder) cut(n int) { b.len -= n } -pub fn (b mut Builder) free() { +pub fn (mut b Builder) free() { b.buf = make(0, b.initial_size, 1) b.len = 0 } diff --git a/vlib/sync/pool.v b/vlib/sync/pool.v index e97f41357b..cfe254ad68 100644 --- a/vlib/sync/pool.v +++ b/vlib/sync/pool.v @@ -86,7 +86,7 @@ pub fn new_pool_processor(context PoolProcessorConfig) &PoolProcessor { // set_max_jobs gives you the ability to override the number // of jobs *after* the PoolProcessor had been created already. -pub fn (pool mut PoolProcessor) set_max_jobs(njobs int) { +pub fn (mut pool PoolProcessor) set_max_jobs(njobs int) { pool.njobs = njobs } @@ -99,11 +99,11 @@ pub fn (pool mut PoolProcessor) set_max_jobs(njobs int) { // work_on_items returns *after* all threads finish. // You can optionally call get_results after that. // TODO: uncomment, when generics work again -//pub fn (pool mut PoolProcessor) work_on_items(items []T) { +//pub fn (mut pool PoolProcessor) work_on_items(items []T) { // pool.work_on_pointers( items.pointers() ) //} -pub fn (pool mut PoolProcessor) work_on_pointers(items []voidptr) { +pub fn (mut pool PoolProcessor) work_on_pointers(items []voidptr) { mut njobs := runtime.nr_jobs() if pool.njobs > 0 { njobs = pool.njobs @@ -186,7 +186,7 @@ pub fn (pool &PoolProcessor) get_int_item(idx int) int { // set_shared_context - can be called during the setup so that you can // provide a context that is shared between all worker threads, like // common options/settings. -pub fn (pool mut PoolProcessor) set_shared_context(context voidptr) { +pub fn (mut pool PoolProcessor) set_shared_context(context voidptr) { pool.shared_context = context } @@ -201,7 +201,7 @@ pub fn (pool &PoolProcessor) get_shared_context() voidptr { // local storage area where it can write/read information that is private // to the given thread, without worrying that it will get overwritten by // another thread -pub fn (pool mut PoolProcessor) set_thread_context(idx int, context voidptr) { +pub fn (mut pool PoolProcessor) set_thread_context(idx int, context voidptr) { pool.thread_contexts[idx] = context } @@ -223,11 +223,11 @@ pub: // -pub fn (pool mut PoolProcessor) work_on_items_s(items []string) { +pub fn (mut pool PoolProcessor) work_on_items_s(items []string) { pool.work_on_pointers( items.pointers() ) } -pub fn (pool mut PoolProcessor) work_on_items_i(items []int) { +pub fn (mut pool PoolProcessor) work_on_items_i(items []int) { pool.work_on_pointers( items.pointers() ) } diff --git a/vlib/sync/sync_nix.c.v b/vlib/sync/sync_nix.c.v index cb14de141b..37be8ae997 100644 --- a/vlib/sync/sync_nix.c.v +++ b/vlib/sync/sync_nix.c.v @@ -15,11 +15,10 @@ pub fn new_mutex() &Mutex { return m } -pub fn (m mut Mutex) lock() { +pub fn (mut m Mutex) lock() { C.pthread_mutex_lock(&m.mutex) } -pub fn (m mut Mutex) unlock() { +pub fn (mut m Mutex) unlock() { C.pthread_mutex_unlock(&m.mutex) } - diff --git a/vlib/sync/sync_windows.c.v b/vlib/sync/sync_windows.c.v index 9c765351b2..09bb7874e7 100644 --- a/vlib/sync/sync_windows.c.v +++ b/vlib/sync/sync_windows.c.v @@ -41,7 +41,7 @@ pub fn new_mutex() &Mutex { return sm } -pub fn (m mut Mutex) lock() { +pub fn (mut m Mutex) lock() { // if mutex handle not initalized if isnil(m.mx) { m.mx = C.CreateMutex(0, false, 0) @@ -68,7 +68,7 @@ pub fn (m mut Mutex) lock() { } } -pub fn (m mut Mutex) unlock() { +pub fn (mut m Mutex) unlock() { if m.state == .waiting { if C.ReleaseMutex(m.mx) { m.state = .broken @@ -78,7 +78,7 @@ pub fn (m mut Mutex) unlock() { m.state = .released } -pub fn (m mut Mutex) destroy() { +pub fn (mut m Mutex) destroy() { if m.state == .waiting { m.unlock() // unlock mutex before destroying } diff --git a/vlib/sync/waitgroup.v b/vlib/sync/waitgroup.v index 78f5ba8794..92fe3b16d7 100644 --- a/vlib/sync/waitgroup.v +++ b/vlib/sync/waitgroup.v @@ -15,7 +15,7 @@ pub fn new_waitgroup() &WaitGroup { return &WaitGroup{mu: sync.new_mutex() } } -pub fn (wg mut WaitGroup) add(delta int) { +pub fn (mut wg WaitGroup) add(delta int) { wg.mu.lock() wg.active += delta wg.mu.unlock() @@ -24,7 +24,7 @@ pub fn (wg mut WaitGroup) add(delta int) { } } -pub fn (wg mut WaitGroup) done() { +pub fn (mut wg WaitGroup) done() { wg.add(-1) } @@ -39,4 +39,3 @@ pub fn (wg &WaitGroup) wait() { } } } - diff --git a/vlib/szip/szip.v b/vlib/szip/szip.v index 74e81cb5e7..007d4cc1f1 100644 --- a/vlib/szip/szip.v +++ b/vlib/szip/szip.v @@ -53,7 +53,7 @@ pub fn open(name string, level int, mode string) ?zip_ptr { if mode != M_WRITE && mode != M_RONLY && mode != M_APPEND { return error('szip: invalid provided open mode') } - /* struct zip_t* */_p_zip := zip_ptr(C.zip_open(name.str, + /* struct zip_t* */_p_zip := zip_ptr(C.zip_open(name.str, _nlevel, mode.str)) if _p_zip == zip_ptr(0) { return error('szip: cannot open/create/append new zip archive') @@ -66,7 +66,7 @@ pub fn open(name string, level int, mode string) ?zip_ptr { * * @param zip zip archive handler. */ -pub fn (z mut zip_ptr) close() { +pub fn (mut z zip_ptr) close() { C.zip_close(z) } @@ -82,7 +82,7 @@ pub fn (z mut zip_ptr) close() { * * @return the return code - 0 on success, negative number (< 0) on error. */ -pub fn (zentry mut zip_ptr) open_entry(name string) /*?*/bool { +pub fn (mut zentry zip_ptr) open_entry(name string) /*?*/bool { res := C.zip_entry_open(zentry, name.str) return res != -1 } @@ -94,7 +94,7 @@ pub fn (zentry mut zip_ptr) open_entry(name string) /*?*/bool { * * @return the return code - 0 on success, negative number (< 0) on error. */ -pub fn (zentry mut zip_ptr) close_entry() { +pub fn (mut zentry zip_ptr) close_entry() { C.zip_entry_close(zentry) } @@ -112,7 +112,7 @@ pub fn (zentry mut zip_ptr) close_entry() { * * @return the pointer to the current zip entry name, or NULL on error. */ -pub fn (zentry mut zip_ptr) name() string { +pub fn (mut zentry zip_ptr) name() string { _name := C.zip_entry_name(zentry) if _name == 0 { return '' @@ -127,7 +127,7 @@ pub fn (zentry mut zip_ptr) name() string { * * @return the index on success, negative number (< 0) on error. */ -pub fn (zentry mut zip_ptr) index() ?int { +pub fn (mut zentry zip_ptr) index() ?int { _index := int(C.zip_entry_index(zentry)) if _index == -1 { return error('szip: cannot get current index of zip entry') @@ -143,7 +143,7 @@ pub fn (zentry mut zip_ptr) index() ?int { * @return the return code - 1 (true), 0 (false), negative number (< 0) on * error. */ -pub fn (zentry mut zip_ptr) isdir() ?bool { +pub fn (mut zentry zip_ptr) isdir() ?bool { _isdir := C.zip_entry_isdir(zentry) if _isdir == -1 { return error('szip: cannot check entry type') @@ -159,7 +159,7 @@ pub fn (zentry mut zip_ptr) isdir() ?bool { * * @return the uncompressed size in bytes. */ -pub fn (zentry mut zip_ptr) size() i64 { +pub fn (mut zentry zip_ptr) size() i64 { _size := i64(C.zip_entry_size(zentry)) return _size } @@ -171,7 +171,7 @@ pub fn (zentry mut zip_ptr) size() i64 { * * @return the CRC-32 checksum. */ -pub fn (zentry mut zip_ptr) crc32() u32 { +pub fn (mut zentry zip_ptr) crc32() u32 { _checksum := u32(C.zip_entry_crc32(zentry)) return _checksum // 0 } @@ -185,10 +185,10 @@ pub fn (zentry mut zip_ptr) crc32() u32 { * * @return the return code - 0 on success, negative number (< 0) on error. */ -pub fn (zentry mut zip_ptr) write_entry(data []byte) bool { - if (data[0] & 0xff) == -1 { - return false - } +pub fn (mut zentry zip_ptr) write_entry(data []byte) bool { + if (data[0] & 0xff) == -1 { + return false + } buf := data // alias of data res := C.zip_entry_write(zentry, buf.data, buf.len) return res == 0 @@ -202,7 +202,7 @@ pub fn (zentry mut zip_ptr) write_entry(data []byte) bool { * * @return the return code - 0 on success, negative number (< 0) on error. */ -pub fn (zentry mut zip_ptr) create_entry(name string) bool { +pub fn (mut zentry zip_ptr) create_entry(name string) bool { res := C.zip_entry_fwrite(zentry, name.str) return res == 0 } @@ -222,7 +222,7 @@ pub fn (zentry mut zip_ptr) create_entry(name string) bool { * @return the return code - the number of bytes actually read on success. * Otherwise a -1 on error. */ -pub fn (zentry mut zip_ptr) read_entry() ?voidptr { +pub fn (mut zentry zip_ptr) read_entry() ?voidptr { mut _buf := voidptr(0) mut _bsize := i64(0) res := C.zip_entry_read(zentry, &_buf, &_bsize) @@ -240,7 +240,7 @@ pub fn (zentry mut zip_ptr) read_entry() ?voidptr { * * @return the return code - 0 on success, negative number (< 0) on error. */ -pub fn (zentry mut zip_ptr) extract_entry(path string) /*?*/bool { +pub fn (mut zentry zip_ptr) extract_entry(path string) /*?*/bool { if C.access(path.str, 0) == -1 { return false //return error('Cannot open file for extracting, file not exists') @@ -259,7 +259,7 @@ pub fn (zentry mut zip_ptr) extract_entry(path string) /*?*/bool { * * @return the return code - 0 on success, negative number (< 0) on error. */ -/*fn (zentry mut zip_ptr) extract(path string) bool { +/*fn (mut zentry zip_ptr) extract(path string) bool { if C.access(path.str, 0) == -1 { return false //return error('Cannot open directory for extracting, directory not exists') @@ -276,10 +276,10 @@ pub fn (zentry mut zip_ptr) extract_entry(path string) /*?*/bool { * @return the return code - the number of entries on success, negative number * (< 0) on error. */ -pub fn (zentry mut zip_ptr) total() ?int { +pub fn (mut zentry zip_ptr) total() ?int { _tentry := int(C.zip_total_entries(zentry)) if _tentry == -1 { return error('szip: cannot count total entries') } return _tentry -} +} diff --git a/vlib/time/stopwatch.v b/vlib/time/stopwatch.v index 9d416efa60..d3792068fb 100644 --- a/vlib/time/stopwatch.v +++ b/vlib/time/stopwatch.v @@ -16,7 +16,7 @@ pub fn new_stopwatch() StopWatch { } // start Starts the timer. If the timer was paused, restarts counting. -pub fn (t mut StopWatch) start() { +pub fn (mut t StopWatch) start() { if t.pause_time == 0 { t.start = time.sys_mono_now() } else { @@ -26,18 +26,18 @@ pub fn (t mut StopWatch) start() { t.pause_time = 0 } -pub fn (t mut StopWatch) restart() { +pub fn (mut t StopWatch) restart() { t.end = 0 t.pause_time = 0 t.start = time.sys_mono_now() } -pub fn (t mut StopWatch) stop() { +pub fn (mut t StopWatch) stop() { t.end = time.sys_mono_now() t.pause_time = 0 } -pub fn (t mut StopWatch) pause() { +pub fn (mut t StopWatch) pause() { t.pause_time = time.sys_mono_now() t.end = t.pause_time // so elapsed keeps track of actual running time } @@ -50,4 +50,3 @@ pub fn (t StopWatch) elapsed() Duration { return Duration(t.end - t.start) } } - diff --git a/vlib/v/ast/scope.v b/vlib/v/ast/scope.v index 9c3c3e6c63..bed9db999e 100644 --- a/vlib/v/ast/scope.v +++ b/vlib/v/ast/scope.v @@ -88,7 +88,7 @@ pub fn (s &Scope) known_var(name string) bool { return false } -pub fn (s mut Scope) update_var_type(name string, typ table.Type) { +pub fn (mut s Scope) update_var_type(name string, typ table.Type) { match mut s.objects[name] { Var { if it.typ == typ { @@ -100,7 +100,7 @@ pub fn (s mut Scope) update_var_type(name string, typ table.Type) { } } -pub fn (s mut Scope) register(name string, obj ScopeObject) { +pub fn (mut s Scope) register(name string, obj ScopeObject) { if name == '_' { return } diff --git a/vlib/v/checker/tests/mut_receiver_warning.out b/vlib/v/checker/tests/mut_receiver_warning.out new file mode 100644 index 0000000000..533a3465a1 --- /dev/null +++ b/vlib/v/checker/tests/mut_receiver_warning.out @@ -0,0 +1,7 @@ +vlib/v/checker/tests/mut_receiver_warning.v:5:7: warning: use `(mut f Foo)` instead of `(f mut Foo)` + 3 | name string + 4 | } + 5 | fn (f mut Foo) info() { + | ~~~ + 6 | f.name = 'foo' + 7 | } \ No newline at end of file diff --git a/vlib/v/checker/tests/mut_receiver_warning.vv b/vlib/v/checker/tests/mut_receiver_warning.vv new file mode 100644 index 0000000000..e01bb499e3 --- /dev/null +++ b/vlib/v/checker/tests/mut_receiver_warning.vv @@ -0,0 +1,10 @@ +struct Foo{ +mut: + name string +} +fn (f mut Foo) info() { + f.name = 'foo' +} +fn main() { + println('hello, world') +} diff --git a/vlib/v/gen/js/js.v b/vlib/v/gen/js/js.v index 3752784e45..9bef52f249 100644 --- a/vlib/v/gen/js/js.v +++ b/vlib/v/gen/js/js.v @@ -91,7 +91,7 @@ pub fn gen(files []ast.File, table &table.Table, pref &pref.Preferences) string return out } -pub fn (g mut JsGen) enter_namespace(n string) { +pub fn (mut g JsGen) enter_namespace(n string) { g.namespace = n if g.namespaces[g.namespace].len == 0 { // create a new namespace @@ -104,16 +104,16 @@ pub fn (g mut JsGen) enter_namespace(n string) { } } -pub fn (g mut JsGen) escape_namespace() { +pub fn (mut g JsGen) escape_namespace() { g.namespaces[g.namespace] = g.out g.namespace = "" } -pub fn (g mut JsGen) push_pub_var(s string) { +pub fn (mut g JsGen) push_pub_var(s string) { g.namespaces_pub[g.namespace] << s } -pub fn (g mut JsGen) find_class_methods(stmts []ast.Stmt) { +pub fn (mut g JsGen) find_class_methods(stmts []ast.Stmt) { for stmt in stmts { match stmt { ast.FnDecl { @@ -131,13 +131,13 @@ pub fn (g mut JsGen) find_class_methods(stmts []ast.Stmt) { } } -pub fn (g mut JsGen) init() { +pub fn (mut g JsGen) init() { g.definitions.writeln('// Generated by the V compiler') g.definitions.writeln('"use strict";') g.definitions.writeln('') } -pub fn (g mut JsGen) finish() { +pub fn (mut g JsGen) finish() { if g.constants.len > 0 { constants := g.constants.str() g.constants = strings.new_builder(100) @@ -156,7 +156,7 @@ pub fn (g JsGen) hashes() string { // V type to JS type -pub fn (g mut JsGen) typ(t table.Type) string { +pub fn (mut g JsGen) typ(t table.Type) string { sym := g.table.get_type_symbol(t) mut styp := sym.name.replace('.', '__') if styp.starts_with('JS__') { @@ -165,7 +165,7 @@ pub fn (g mut JsGen) typ(t table.Type) string { return g.to_js_typ(styp) } -fn (g mut JsGen) to_js_typ(typ string) string { +fn (mut g JsGen) to_js_typ(typ string) string { mut styp := '' match typ { 'int' { @@ -199,33 +199,33 @@ fn (g mut JsGen) to_js_typ(typ string) string { pub fn (g &JsGen) save() {} -pub fn (g mut JsGen) gen_indent() { +pub fn (mut g JsGen) gen_indent() { if g.indents[g.namespace] > 0 && g.empty_line { g.out.write(tabs[g.indents[g.namespace]]) } g.empty_line = false } -pub fn (g mut JsGen) inc_indent() { +pub fn (mut g JsGen) inc_indent() { g.indents[g.namespace]++ } -pub fn (g mut JsGen) dec_indent() { +pub fn (mut g JsGen) dec_indent() { g.indents[g.namespace]-- } -pub fn (g mut JsGen) write(s string) { +pub fn (mut g JsGen) write(s string) { g.gen_indent() g.out.write(s) } -pub fn (g mut JsGen) writeln(s string) { +pub fn (mut g JsGen) writeln(s string) { g.gen_indent() g.out.writeln(s) g.empty_line = true } -pub fn (g mut JsGen) new_tmp_var() string { +pub fn (mut g JsGen) new_tmp_var() string { g.tmp_count++ return '_tmp$g.tmp_count' } @@ -239,7 +239,7 @@ fn js_name(name string) string { return name } -fn (g mut JsGen) stmts(stmts []ast.Stmt) { +fn (mut g JsGen) stmts(stmts []ast.Stmt) { g.inc_indent() for stmt in stmts { g.stmt(stmt) @@ -247,7 +247,7 @@ fn (g mut JsGen) stmts(stmts []ast.Stmt) { g.dec_indent() } -fn (g mut JsGen) stmt(node ast.Stmt) { +fn (mut g JsGen) stmt(node ast.Stmt) { g.stmt_start_pos = g.out.len match node { @@ -341,7 +341,7 @@ fn (g mut JsGen) stmt(node ast.Stmt) { } } -fn (g mut JsGen) expr(node ast.Expr) { +fn (mut g JsGen) expr(node ast.Expr) { match node { ast.ArrayInit { g.gen_array_init_expr(it) @@ -436,7 +436,7 @@ fn (g mut JsGen) expr(node ast.Expr) { } } -fn (g mut JsGen) gen_string_inter_literal(it ast.StringInterLiteral) { +fn (mut g JsGen) gen_string_inter_literal(it ast.StringInterLiteral) { g.write('tos3(`') for i, val in it.vals { escaped_val := val.replace_each(['`', '\`', '\r\n', '\n']) @@ -483,7 +483,7 @@ fn (g mut JsGen) gen_string_inter_literal(it ast.StringInterLiteral) { g.write('`)') } -fn (g mut JsGen) gen_array_init_expr(it ast.ArrayInit) { +fn (mut g JsGen) gen_array_init_expr(it ast.ArrayInit) { type_sym := g.table.get_type_symbol(it.typ) if type_sym.kind != .array_fixed { g.write('[') @@ -497,7 +497,7 @@ fn (g mut JsGen) gen_array_init_expr(it ast.ArrayInit) { } else {} } -fn (g mut JsGen) gen_assert_stmt(a ast.AssertStmt) { +fn (mut g JsGen) gen_assert_stmt(a ast.AssertStmt) { g.writeln('// assert') g.write('if( ') g.expr(a.expr) @@ -520,7 +520,7 @@ fn (g mut JsGen) gen_assert_stmt(a ast.AssertStmt) { g.writeln('}') } -fn (g mut JsGen) gen_assign_stmt(it ast.AssignStmt) { +fn (mut g JsGen) gen_assign_stmt(it ast.AssignStmt) { if it.left.len > it.right.len { // multi return jsdoc := strings.new_builder(50) @@ -586,23 +586,23 @@ fn (g mut JsGen) gen_assign_stmt(it ast.AssignStmt) { } } -fn (g mut JsGen) gen_attr(it ast.Attr) { +fn (mut g JsGen) gen_attr(it ast.Attr) { g.writeln('/* [$it.name] */') } -fn (g mut JsGen) gen_block(it ast.Block) { +fn (mut g JsGen) gen_block(it ast.Block) { g.writeln('{') g.stmts(it.stmts) g.writeln('}') } -fn (g mut JsGen) gen_branch_stmt(it ast.BranchStmt) { +fn (mut g JsGen) gen_branch_stmt(it ast.BranchStmt) { // continue or break g.write(it.tok.kind.str()) g.writeln(';') } -fn (g mut JsGen) gen_const_decl(it ast.ConstDecl) { +fn (mut g JsGen) gen_const_decl(it ast.ConstDecl) { // old_indent := g.indents[g.namespace] for i, field in it.fields { // TODO hack. Cut the generated value and paste it into definitions. @@ -622,7 +622,7 @@ fn (g mut JsGen) gen_const_decl(it ast.ConstDecl) { g.constants.writeln('') } -fn (g mut JsGen) gen_defer_stmts() { +fn (mut g JsGen) gen_defer_stmts() { g.writeln('(function defer() {') for defer_stmt in g.defer_stmts { g.stmts(defer_stmt.stmts) @@ -630,7 +630,7 @@ fn (g mut JsGen) gen_defer_stmts() { g.writeln('})();') } -fn (g mut JsGen) gen_enum_decl(it ast.EnumDecl) { +fn (mut g JsGen) gen_enum_decl(it ast.EnumDecl) { g.writeln('const ${js_name(it.name)} = Object.freeze({') g.inc_indent() for i, field in it.fields { @@ -653,7 +653,7 @@ fn (g mut JsGen) gen_enum_decl(it ast.EnumDecl) { } } -fn (g mut JsGen) gen_expr_stmt(it ast.ExprStmt) { +fn (mut g JsGen) gen_expr_stmt(it ast.ExprStmt) { g.expr(it.expr) expr := it.expr match expr { @@ -668,7 +668,7 @@ fn (g mut JsGen) gen_expr_stmt(it ast.ExprStmt) { } } -fn (g mut JsGen) gen_fn_decl(it ast.FnDecl) { +fn (mut g JsGen) gen_fn_decl(it ast.FnDecl) { if it.is_method { // Struct methods are handled by class generation code. return @@ -679,7 +679,7 @@ fn (g mut JsGen) gen_fn_decl(it ast.FnDecl) { g.gen_method_decl(it) } -fn (g mut JsGen) gen_method_decl(it ast.FnDecl) { +fn (mut g JsGen) gen_method_decl(it ast.FnDecl) { g.fn_decl = &it has_go := fn_has_go(it) is_main := it.name == 'main' @@ -739,7 +739,7 @@ fn (g mut JsGen) gen_method_decl(it ast.FnDecl) { g.fn_decl = 0 } -fn (g mut JsGen) gen_for_c_stmt(it ast.ForCStmt) { +fn (mut g JsGen) gen_for_c_stmt(it ast.ForCStmt) { g.inside_loop = true g.write('for (') if it.has_init { @@ -760,7 +760,7 @@ fn (g mut JsGen) gen_for_c_stmt(it ast.ForCStmt) { g.inside_loop = false } -fn (g mut JsGen) gen_for_in_stmt(it ast.ForInStmt) { +fn (mut g JsGen) gen_for_in_stmt(it ast.ForInStmt) { if it.is_range { // `for x in 1..10 {` i := it.val_var @@ -813,7 +813,7 @@ fn (g mut JsGen) gen_for_in_stmt(it ast.ForInStmt) { } } -fn (g mut JsGen) gen_for_stmt(it ast.ForStmt) { +fn (mut g JsGen) gen_for_stmt(it ast.ForStmt) { g.write('while (') if it.is_inf { g.write('true') @@ -825,7 +825,7 @@ fn (g mut JsGen) gen_for_stmt(it ast.ForStmt) { g.writeln('}') } -fn (g mut JsGen) fn_args(args []table.Arg, is_variadic bool) { +fn (mut g JsGen) fn_args(args []table.Arg, is_variadic bool) { // no_names := args.len > 0 && args[0].name == 'arg_1' for i, arg in args { name := js_name(arg.name) @@ -842,7 +842,7 @@ fn (g mut JsGen) fn_args(args []table.Arg, is_variadic bool) { } } -fn (g mut JsGen) gen_go_stmt(node ast.GoStmt) { +fn (mut g JsGen) gen_go_stmt(node ast.GoStmt) { // x := node.call_expr as ast.CallEpxr // TODO match node.call_expr { ast.CallExpr { @@ -869,7 +869,7 @@ fn (g mut JsGen) gen_go_stmt(node ast.GoStmt) { } } -fn (g mut JsGen) gen_map_init_expr(it ast.MapInit) { +fn (mut g JsGen) gen_map_init_expr(it ast.MapInit) { // key_typ_sym := g.table.get_type_symbol(it.key_type) // value_typ_sym := g.table.get_type_symbol(it.value_type) // key_typ_str := key_typ_sym.name.replace('.', '__') @@ -896,7 +896,7 @@ fn (g mut JsGen) gen_map_init_expr(it ast.MapInit) { } } -fn (g mut JsGen) gen_return_stmt(it ast.Return) { +fn (mut g JsGen) gen_return_stmt(it ast.Return) { g.write('return ') if g.fn_decl.name == 'main' { @@ -922,7 +922,7 @@ fn (g mut JsGen) gen_return_stmt(it ast.Return) { g.writeln(';') } -fn (g mut JsGen) enum_expr(node ast.Expr) { +fn (mut g JsGen) enum_expr(node ast.Expr) { match node { ast.EnumVal { g.write(it.val) @@ -933,7 +933,7 @@ fn (g mut JsGen) enum_expr(node ast.Expr) { } } -fn (g mut JsGen) gen_struct_decl(node ast.StructDecl) { +fn (mut g JsGen) gen_struct_decl(node ast.StructDecl) { g.writeln('class ${js_name(node.name)} {') g.inc_indent() g.writeln(g.doc.gen_ctor(node.fields)) @@ -968,7 +968,7 @@ fn (g mut JsGen) gen_struct_decl(node ast.StructDecl) { } } -fn (g mut JsGen) gen_struct_init(it ast.StructInit) { +fn (mut g JsGen) gen_struct_init(it ast.StructInit) { type_sym := g.table.get_type_symbol(it.typ) g.writeln('new ${type_sym.name}({') g.inc_indent() @@ -984,7 +984,7 @@ fn (g mut JsGen) gen_struct_init(it ast.StructInit) { g.write('})') } -fn (g mut JsGen) gen_ident(node ast.Ident) { +fn (mut g JsGen) gen_ident(node ast.Ident) { if node.kind == .constant { g.write('CONSTANTS.') } @@ -996,12 +996,12 @@ fn (g mut JsGen) gen_ident(node ast.Ident) { g.write(name) } -fn (g mut JsGen) gen_selector_expr(it ast.SelectorExpr) { +fn (mut g JsGen) gen_selector_expr(it ast.SelectorExpr) { g.expr(it.expr) g.write('.$it.field_name') } -fn (g mut JsGen) gen_if_expr(node ast.IfExpr) { +fn (mut g JsGen) gen_if_expr(node ast.IfExpr) { type_sym := g.table.get_type_symbol(node.typ) // one line ?: diff --git a/vlib/v/parser/fn.v b/vlib/v/parser/fn.v index 356e25e910..91f844cfff 100644 --- a/vlib/v/parser/fn.v +++ b/vlib/v/parser/fn.v @@ -134,6 +134,9 @@ fn (mut p Parser) fn_decl() ast.FnDecl { rec_name = p.check_name() if !rec_mut { rec_mut = p.tok.kind == .key_mut + if rec_mut { + p.warn_with_pos('use `(mut f Foo)` instead of `(f mut Foo)`', p.tok.position()) + } } receiver_pos = rec_start_pos.extend(p.tok.position()) is_amp := p.tok.kind == .amp diff --git a/vlib/v/parser/module.v b/vlib/v/parser/module.v index ae31c5bc47..b5b23ce42c 100644 --- a/vlib/v/parser/module.v +++ b/vlib/v/parser/module.v @@ -28,7 +28,7 @@ fn (mut p Parser) register_used_import(alias string) { } } -fn (p mut Parser) check_unused_imports() { +fn (mut p Parser) check_unused_imports() { mut output := '' for alias, mod in p.imports { if !p.is_used_import(alias) { diff --git a/vlib/v/scanner/scanner.v b/vlib/v/scanner/scanner.v index b9a8c4685c..cbbebe9b23 100644 --- a/vlib/v/scanner/scanner.v +++ b/vlib/v/scanner/scanner.v @@ -85,7 +85,7 @@ fn (s &Scanner) new_token(tok_kind token.Kind, lit string, len int) token.Token } } -fn (s mut Scanner) ident_name() string { +fn (mut s Scanner) ident_name() string { start := s.pos s.pos++ for s.pos < s.text.len && (util.is_name_char(s.text[s.pos]) || s.text[s.pos].is_digit()) { @@ -97,7 +97,7 @@ fn (s mut Scanner) ident_name() string { } // ident_fn_name look ahead and return name of function if possible, otherwise empty string -fn (s mut Scanner) ident_fn_name() string { +fn (mut s Scanner) ident_fn_name() string { start := s.pos mut pos := s.pos pos++ @@ -155,7 +155,7 @@ fn filter_num_sep(txt byteptr, start int, end int) string { } } -fn (s mut Scanner) ident_bin_number() string { +fn (mut s Scanner) ident_bin_number() string { mut has_wrong_digit := false mut first_wrong_digit := `\0` start_pos := s.pos @@ -184,7 +184,7 @@ fn (s mut Scanner) ident_bin_number() string { return number } -fn (s mut Scanner) ident_hex_number() string { +fn (mut s Scanner) ident_hex_number() string { mut has_wrong_digit := false mut first_wrong_digit := `\0` start_pos := s.pos @@ -213,7 +213,7 @@ fn (s mut Scanner) ident_hex_number() string { return number } -fn (s mut Scanner) ident_oct_number() string { +fn (mut s Scanner) ident_oct_number() string { mut has_wrong_digit := false mut first_wrong_digit := `\0` start_pos := s.pos @@ -242,7 +242,7 @@ fn (s mut Scanner) ident_oct_number() string { return number } -fn (s mut Scanner) ident_dec_number() string { +fn (mut s Scanner) ident_dec_number() string { mut has_wrong_digit := false mut first_wrong_digit := `\0` start_pos := s.pos @@ -355,7 +355,7 @@ fn (s mut Scanner) ident_dec_number() string { return number } -fn (s mut Scanner) ident_number() string { +fn (mut s Scanner) ident_number() string { if s.expect('0b', s.pos) { return s.ident_bin_number() } @@ -370,7 +370,7 @@ fn (s mut Scanner) ident_number() string { } } -fn (s mut Scanner) skip_whitespace() { +fn (mut s Scanner) skip_whitespace() { // if s.is_vh { println('vh') return } for s.pos < s.text.len && s.text[s.pos].is_space() { if util.is_nl(s.text[s.pos]) && s.is_vh { @@ -384,13 +384,13 @@ fn (s mut Scanner) skip_whitespace() { } } -fn (s mut Scanner) end_of_file() token.Token { +fn (mut s Scanner) end_of_file() token.Token { s.pos = s.text.len s.inc_line_number() return s.new_token(.eof, '', 1) } -pub fn (s mut Scanner) scan() token.Token { +pub fn (mut s Scanner) scan() token.Token { // if s.comments_mode == .parse_comments { // println('\nscan()') // } @@ -868,7 +868,7 @@ fn (s &Scanner) count_symbol_before(p int, sym byte) int { return count } -fn (s mut Scanner) ident_string() string { +fn (mut s Scanner) ident_string() string { q := s.text[s.pos] is_quote := q == single_quote || q == double_quote is_raw := is_quote && s.pos > 0 && s.text[s.pos - 1] == `r` @@ -956,7 +956,7 @@ fn trim_slash_line_break(s string) string { return ret_str } -fn (s mut Scanner) ident_char() string { +fn (mut s Scanner) ident_char() string { start := s.pos slash := `\\` mut len := 0 @@ -1005,7 +1005,7 @@ fn (s &Scanner) expect(want string, start_pos int) bool { return true } -fn (s mut Scanner) debug_tokens() { +fn (mut s Scanner) debug_tokens() { s.pos = 0 s.is_started = false s.is_debug = true @@ -1029,18 +1029,18 @@ fn (s mut Scanner) debug_tokens() { } } -fn (s mut Scanner) ignore_line() { +fn (mut s Scanner) ignore_line() { s.eat_to_end_of_line() s.inc_line_number() } -fn (s mut Scanner) eat_to_end_of_line() { +fn (mut s Scanner) eat_to_end_of_line() { for s.pos < s.text.len && s.text[s.pos] != `\n` { s.pos++ } } -fn (s mut Scanner) inc_line_number() { +fn (mut s Scanner) inc_line_number() { s.last_nl_pos = s.pos s.line_nr++ s.line_ends << s.pos diff --git a/vlib/v/tests/generic_test.v b/vlib/v/tests/generic_test.v index 54e01d0947..98afaa0ac8 100644 --- a/vlib/v/tests/generic_test.v +++ b/vlib/v/tests/generic_test.v @@ -74,7 +74,7 @@ mut: y f64 } -fn (p mut Point) translate(x, y T) { +fn (mut p Point) translate(x, y T) { p.x += x p.y += y } diff --git a/vlib/v/tests/interfaces_map_test.v b/vlib/v/tests/interfaces_map_test.v index f0e7562acb..6a21aad9f3 100644 --- a/vlib/v/tests/interfaces_map_test.v +++ b/vlib/v/tests/interfaces_map_test.v @@ -19,7 +19,7 @@ fn new_room() &ChatRoom { } } -fn (r mut ChatRoom) add(name string, s Speaker) { +fn (mut r ChatRoom) add(name string, s Speaker) { r.talkers[name] = s } diff --git a/vlib/v/vmod/vmod.v b/vlib/v/vmod/vmod.v index be219ad17a..31bc8515c5 100644 --- a/vlib/v/vmod/vmod.v +++ b/vlib/v/vmod/vmod.v @@ -58,7 +58,7 @@ pub fn (mcache &ModFileCacher) dump() { } } -pub fn (mcache mut ModFileCacher) get(mfolder string) ModFileAndFolder { +pub fn (mut mcache ModFileCacher) get(mfolder string) ModFileAndFolder { if mfolder in mcache.cache { return mcache.cache[ mfolder ] } @@ -69,11 +69,11 @@ pub fn (mcache mut ModFileCacher) get(mfolder string) ModFileAndFolder { return res } -fn (cacher mut ModFileCacher) add(path string, result ModFileAndFolder) { +fn (mut cacher ModFileCacher) add(path string, result ModFileAndFolder) { cacher.cache[ path ] = result } -fn (mcache mut ModFileCacher) traverse(mfolder string) ([]string, ModFileAndFolder) { +fn (mut mcache ModFileCacher) traverse(mfolder string) ([]string, ModFileAndFolder) { mut cfolder := mfolder mut folders_so_far := [cfolder] mut levels := 0 @@ -111,13 +111,13 @@ fn (mcache mut ModFileCacher) traverse(mfolder string) ([]string, ModFileAndFold return [mfolder], ModFileAndFolder{ vmod_file: '', vmod_folder: mfolder } } -fn (mcache mut ModFileCacher) mark_folders_with_vmod( folders_so_far []string, vmod ModFileAndFolder ) { +fn (mut mcache ModFileCacher) mark_folders_with_vmod( folders_so_far []string, vmod ModFileAndFolder ) { for f in folders_so_far { mcache.add( f, vmod ) } } -fn (mcache mut ModFileCacher) mark_folders_as_vmod_free( folders_so_far []string ) { +fn (mut mcache ModFileCacher) mark_folders_as_vmod_free( folders_so_far []string ) { // No need to check these folders anymore, // because their parents do not contain v.mod files for f in folders_so_far { @@ -135,7 +135,7 @@ fn (mcache &ModFileCacher) check_for_stop(cfolder string, files []string) bool { return false } -fn (mcache mut ModFileCacher) get_files(cfolder string) []string { +fn (mut mcache ModFileCacher) get_files(cfolder string) []string { if cfolder in mcache.folder_files { return mcache.folder_files[ cfolder ] } diff --git a/vlib/vweb/assets/assets.v b/vlib/vweb/assets/assets.v index f6258a7e3c..bcd9da5612 100644 --- a/vlib/vweb/assets/assets.v +++ b/vlib/vweb/assets/assets.v @@ -33,12 +33,12 @@ pub fn new_manager() &AssetManager { } // add_css adds a css asset -pub fn (am mut AssetManager) add_css(file string) bool { +pub fn (mut am AssetManager) add_css(file string) bool { return am.add('css', file) } // add_js adds a js asset -pub fn (am mut AssetManager) add_js(file string) bool { +pub fn (mut am AssetManager) add_js(file string) bool { return am.add('js', file) } @@ -149,8 +149,8 @@ fn (am AssetManager) include(asset_type string, combine bool) string { } // dont return option until size limit is removed -// fn (am mut AssetManager) add(asset_type, file string) ?bool { -fn (am mut AssetManager) add(asset_type, file string) bool { +// fn (mut am AssetManager) add(asset_type, file string) ?bool { +fn (mut am AssetManager) add(asset_type, file string) bool { if !os.exists(file) { // return error('vweb.assets: cannot add asset $file, it does not exist') return false diff --git a/vlib/vweb/vweb.v b/vlib/vweb/vweb.v index bb43a742fe..4384a6baff 100644 --- a/vlib/vweb/vweb.v +++ b/vlib/vweb/vweb.v @@ -48,7 +48,7 @@ mut: done bool } -fn (ctx mut Context) send_response_to_client(mimetype string, res string) bool { +fn (mut ctx Context) send_response_to_client(mimetype string, res string) bool { if ctx.done { return false } ctx.done = true mut sb := strings.new_builder(1024) @@ -63,31 +63,31 @@ fn (ctx mut Context) send_response_to_client(mimetype string, res string) bool { return true } -pub fn (ctx mut Context) html(s string) { +pub fn (mut ctx Context) html(s string) { ctx.send_response_to_client('text/html', s) } -pub fn (ctx mut Context) text(s string) { +pub fn (mut ctx Context) text(s string) { ctx.send_response_to_client('text/plain', s) } -pub fn (ctx mut Context) json(s string) { +pub fn (mut ctx Context) json(s string) { ctx.send_response_to_client('application/json', s) } -pub fn (ctx mut Context) redirect(url string) { +pub fn (mut ctx Context) redirect(url string) { if ctx.done { return } ctx.done = true ctx.conn.send_string('HTTP/1.1 302 Found\r\nLocation: ${url}${ctx.headers}\r\n${HEADERS_CLOSE}') or { return } } -pub fn (ctx mut Context) not_found(s string) { +pub fn (mut ctx Context) not_found(s string) { if ctx.done { return } ctx.done = true ctx.conn.send_string(HTTP_404) or { return } } -pub fn (ctx mut Context) set_cookie(key, val string) { +pub fn (mut ctx Context) set_cookie(key, val string) { // TODO support directives, escape cookie value (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) //println('Set-Cookie $key=$val') ctx.add_header('Set-Cookie', '${key}=${val}; Secure; HttpOnly') @@ -112,7 +112,7 @@ pub fn (ctx &Context) get_cookie(key string) ?string { // TODO refactor return error('Cookie not found') } -pub fn (ctx mut Context) add_header(key, val string) { +pub fn (mut ctx Context) add_header(key, val string) { //println('add_header($key, $val)') ctx.headers = ctx.headers + '\r\n$key: $val' //println(ctx.headers) @@ -290,7 +290,7 @@ fn handle_conn(conn net.Socket, app mut T) { app.reset() } -fn (ctx mut Context) parse_form(s string) { +fn (mut ctx Context) parse_form(s string) { if ctx.req.method !in methods_with_form { return } @@ -319,7 +319,7 @@ fn (ctx mut Context) parse_form(s string) { // ... } -fn (ctx mut Context) scan_static_directory(directory_path, mount_path string) { +fn (mut ctx Context) scan_static_directory(directory_path, mount_path string) { files := os.ls(directory_path) or { panic(err) } if files.len > 0 { @@ -340,7 +340,7 @@ fn (ctx mut Context) scan_static_directory(directory_path, mount_path string) { } } -pub fn (ctx mut Context) handle_static(directory_path string) bool { +pub fn (mut ctx Context) handle_static(directory_path string) bool { if ctx.done || ! os.exists(directory_path) { return false } @@ -358,7 +358,7 @@ pub fn (ctx mut Context) handle_static(directory_path string) bool { return true } -pub fn (ctx mut Context) serve_static(url, file_path, mime_type string) { +pub fn (mut ctx Context) serve_static(url, file_path, mime_type string) { ctx.static_files[url] = file_path ctx.static_mime_types[url] = mime_type }