From fbae0a72745d89bbe42aa01cbbfbb6b5ae408167 Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Fri, 25 Sep 2020 17:26:11 +0100 Subject: [PATCH] checker: warn if fn looks like a test fn but filename doesn't end in `_test.v` (#6469) --- vlib/v/checker/checker.v | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index 99fd006655..c076e75df6 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -3919,6 +3919,18 @@ fn (mut c Checker) fn_decl(mut node ast.FnDecl) { c.error('.str() methods should have 0 arguments', node.pos) } } + // TODO c.pref.is_vet + if node.language == .v && !node.is_method && node.args.len == 0 && node.return_type == table.void_type_idx && + node.name.after('.').starts_with('test_') && !c.file.path.ends_with('_test.v') { + // simple heuristic + for st in node.stmts { + if st is ast.AssertStmt { + c.warn('tests will not be run because filename does not end with `_test.v`', + node.pos) + break + } + } + } c.expected_type = table.void_type c.cur_fn = node // Add return if `fn(...) ? {...}` have no return at end