mirror of
https://github.com/golang/go
synced 2024-11-20 05:04:43 -07:00
- do not collect BUG comments w/o bug description
R=rsc DELTA=17 (8 added, 0 deleted, 9 changed) OCL=31670 CL=31674
This commit is contained in:
parent
8d8245623f
commit
3d486d0d26
@ -174,14 +174,20 @@ func copyCommentList(list []*ast.Comment) []*ast.Comment {
|
||||
}
|
||||
|
||||
|
||||
var bug_markers *regexp.Regexp; // Regexp constructor needs threads - cannot use init expression
|
||||
var (
|
||||
// Regexp constructor needs threads - cannot use init expressions
|
||||
bug_markers *regexp.Regexp;
|
||||
bug_content *regexp.Regexp;
|
||||
)
|
||||
|
||||
|
||||
// AddProgram adds the AST for a source file to the DocReader.
|
||||
// Adding the same AST multiple times is a no-op.
|
||||
//
|
||||
func (doc *DocReader) AddProgram(prog *ast.Program) {
|
||||
if bug_markers == nil {
|
||||
bug_markers = makeRex("^/[/*][ \t]*BUG(\\([^)]*\\))?:?[ \t]*");
|
||||
bug_markers = makeRex("^/[/*][ \t]*BUG\\(.*\\):[ \t]*"); // BUG(uid):
|
||||
bug_content = makeRex("[^ \n\r\t]+"); // at least one non-whitespace char
|
||||
}
|
||||
|
||||
if doc.name != prog.Name.Value {
|
||||
@ -202,13 +208,15 @@ func (doc *DocReader) AddProgram(prog *ast.Program) {
|
||||
// collect BUG(...) comments
|
||||
for _, c := range prog.Comments {
|
||||
text := c.List[0].Text;
|
||||
m := bug_markers.Execute(string(text));
|
||||
if len(m) > 0 {
|
||||
// found a BUG comment;
|
||||
// push a copy of the comment w/o the BUG prefix
|
||||
list := copyCommentList(c.List);
|
||||
list[0].Text = text[m[1] : len(text)];
|
||||
doc.bugs.Push(&ast.CommentGroup{list, c.EndLine});
|
||||
cstr := string(text);
|
||||
if m := bug_markers.Execute(cstr); len(m) > 0 {
|
||||
// found a BUG comment; maybe empty
|
||||
if bstr := cstr[m[1] : len(cstr)]; bug_content.Match(bstr) {
|
||||
// non-empty BUG comment; collect comment without BUG prefix
|
||||
list := copyCommentList(c.List);
|
||||
list[0].Text = text[m[1] : len(text)];
|
||||
doc.bugs.Push(&ast.CommentGroup{list, c.EndLine});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user