diff --git a/ql/src/filters/ClassifyFiles.ql b/ql/src/filters/ClassifyFiles.ql index f0d13c0a69b..469ed63033c 100644 --- a/ql/src/filters/ClassifyFiles.ql +++ b/ql/src/filters/ClassifyFiles.ql @@ -15,9 +15,7 @@ string generatorCommentRegex() { result = "This (file|class|interface|art[ei]fact) (was|is) (?:mechanically|automatically) generated" or result = "The following code was (?:auto[ -]?)?generated (?:by|from)" or result = "Autogenerated by Thrift" or - result = "(Code g|G)enerated from .* by ANTLR" or - // regular expression recommended for Go code generators (https://golang.org/pkg/cmd/go/internal/generate/) - result = "(^|\n)// Code generated .* DO NOT EDIT\\.($|\n)" + result = "(Code g|G)enerated from .* by ANTLR" } predicate classify(File f, string category) { @@ -36,6 +34,10 @@ predicate classify(File f, string category) { // generated code exists(Comment c | c.getFile() = f | c.getText().regexpMatch("(?i).*\\b(" + concat(generatorCommentRegex(), "|") + ")\\b.*") + or + // regular expression recommended for Go code generators + // (https://golang.org/pkg/cmd/go/internal/generate/) + c.getText().regexpMatch("^\\s*Code generated .* DO NOT EDIT\\.\\s*$") ) and category = "generated" } diff --git a/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected b/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected index 2e2e4217780..b0173466116 100644 --- a/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected +++ b/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected @@ -1 +1,2 @@ +| hello2.go:0:0:0:0 | hello2.go | generated | | hello.go:0:0:0:0 | hello.go | generated | diff --git a/ql/test/query-tests/filters/ClassifyFiles/hello2.go b/ql/test/query-tests/filters/ClassifyFiles/hello2.go new file mode 100644 index 00000000000..a54eaa223ca --- /dev/null +++ b/ql/test/query-tests/filters/ClassifyFiles/hello2.go @@ -0,0 +1,9 @@ +// Code generated from stuff; DO NOT EDIT. + +package main + +import "fmt" + +func main2() { + fmt.Println("Hello, world!") +}