diff --git a/cmd/tools/vvet/tests/brackets_in_documentation_comment_no_warn.out b/cmd/tools/vvet/tests/brackets_in_documentation_comment_no_warn.out new file mode 100644 index 0000000000..e69de29bb2 diff --git a/cmd/tools/vvet/tests/brackets_in_documentation_comment_no_warn.vv b/cmd/tools/vvet/tests/brackets_in_documentation_comment_no_warn.vv new file mode 100644 index 0000000000..17577ba7d2 --- /dev/null +++ b/cmd/tools/vvet/tests/brackets_in_documentation_comment_no_warn.vv @@ -0,0 +1,9 @@ + +// normalize_vector Normalizes a vector +// +// Example: +// ```v +// vector := Vector{3, 4} +// normalize_vector(vector) // Vector{0.6, 0.8} +// ``` +pub fn normalize_vector(vector f32) {} diff --git a/cmd/tools/vvet/vvet.v b/cmd/tools/vvet/vvet.v index e11d2a6722..31fa0597b0 100644 --- a/cmd/tools/vvet/vvet.v +++ b/cmd/tools/vvet/vvet.v @@ -187,23 +187,28 @@ fn (mut vt Vet) vet_fn_documentation(lines []string, line string, lnumber int) { prev_prev_line = lines[j - 1] } prev_line := lines[j] + + if prev_line.starts_with('//') { + if prev_line.starts_with('// ${fn_name} ') { + grab = false + break + } else if prev_line.starts_with('// ${fn_name}') + && !prev_prev_line.starts_with('//') { + grab = false + clean_line := line.all_before_last('{').trim(' ') + vt.warn('The documentation for "${clean_line}" seems incomplete.', + lnumber, .doc) + break + } + + continue + } + if prev_line.contains('}') { // We've looked back to the above scope, stop here break - } else if prev_line.starts_with('// ${fn_name} ') { - grab = false - break - } else if prev_line.starts_with('// ${fn_name}') - && !prev_prev_line.starts_with('//') { - grab = false - clean_line := line.all_before_last('{').trim(' ') - vt.warn('The documentation for "${clean_line}" seems incomplete.', - lnumber, .doc) - break } else if prev_line.starts_with('[') { tags << collect_tags(prev_line) continue - } else if prev_line.starts_with('//') { // Single-line comment - continue } } if grab {