@@ -35,8 +35,8 @@ predicate isBuiltinMember(string sig) {
3535 "string int.toString()" , "string string.charAt(int)" , "int string.indexOf(string)" ,
3636 "int string.indexOf(string, int, int)" , "predicate string.isLowercase()" ,
3737 "predicate string.isUppercase()" , "int string.length()" , "predicate string.matches(string)" ,
38- "string string.prefix(int)" , "string regexpCapture(string, int)" ,
39- "string regexpFind(string, int, int)" , "predicate string.regexpMatch(string)" ,
38+ "string string.prefix(int)" , "string string. regexpCapture(string, int)" ,
39+ "string string. regexpFind(string, int, int)" , "predicate string.regexpMatch(string)" ,
4040 "string string.regexpReplaceAll(string, string)" , "string string.replaceAll(string, string)" ,
4141 "string string.splitAt(string)" , "string string.splitAt(string, int)" ,
4242 "string string.substring(int, int)" , "string string.suffix(int)" , "date string.toDate()" ,
@@ -58,6 +58,18 @@ predicate isBuiltinMember(string qual, string ret, string name, string args) {
5858 )
5959}
6060
61+ module BuildinsConsistency {
62+ query predicate noBuildinParse ( string sig ) {
63+ isBuiltinMember ( sig ) and
64+ not exists ( sig .regexpCapture ( "(\\w+) (\\w+)\\.(\\w+)\\(([\\w, ]*)\\)" , _) )
65+ }
66+
67+ query predicate noBuildinClasslessParse ( string sig ) {
68+ isBuiltinClassless ( sig ) and
69+ not exists ( sig .regexpCapture ( "(\\w+) (\\w+)\\(([\\w, ]*)\\)" , _) )
70+ }
71+ }
72+
6173bindingset [ args]
6274string getArgType ( string args , int i ) { result = args .splitAt ( "," , i ) .trim ( ) }
6375
0 commit comments