github / github/codeql-cli-binaries

Add `string` predicates `startsWith`, `endsWith` and `contains`

Aberta
#78 2 comentários 1 reação 0 responsáveis Ver no GitHub
CLI
Linguagem predominante
Sem dados de linguagem
Estrelas
1k
Forks
184
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

What do you think about adding predicates to the CodeQL type `string` for determining whether a string has a given prefix or suffix or contains a substring? For example `startsWith(string)`, `endsWith(string)` and `contains(string)`.
Currently the workarounds are using `indexOf(...) = 0` or `matches(...%)` (which seems to be faster than `indexOf`, see https://github.com/github/codeql/issues/6479#issuecomment-900081363). However, these predicates do not convey the intention as clearly, might not be that performant and for `matches` one must take care not to accidentally use `%`or `_` where the intention was to match them literally.

In the github/codeql repository (at https://github.com/github/codeql/commit/39533317ffbeb6224d049de22fc182d8eeea4b61) there are at least:
- 196 cases where `startsWith` could be used
(I searched for the regex `matches\("[^%_]*%"\)` in CodeQL source files)
- 72 cases where `endsWith` could be used
(I searched for the regex `matches\("%[^%_]*"\)` in CodeQL source files)

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

A issue propõe adicionar os predicados startsWith, endsWith e contains ao tipo string do CodeQL, mas não nomeia arquivos-fonte, testes ou pontos de entrada da implementação. Comece localizando a implementação do tipo string e seus testes; o trabalho estará concluído quando os predicados estiverem disponíveis e cobrirem verificações de prefixo, sufixo e substring sem depender de soluções alternativas com indexOf ou matches.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Domínio
devtools
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.