[TS] Construct function-typed input values for symbolic execution
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 55/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- kotlin, node.js, typescript
- Domínio
- compilers, testing-qa
Direção de pesquisa
Start with TsInterpreter.getInitialState and the EtsHierarchy.classesForType(EtsFunctionType) failure described in the issue, then inspect the disabled typeOfInputFunction test and the related typeof coverage from PR #459. Add a focused source-level regression for a function-typed parameter, verify generated callable inputs by replaying them in Node.js, and distinguish unsupported callable forms from failed analysis.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Problem
USVM cannot construct an initial state for a function-typed TypeScript parameter. The typeof visitor in PR #459 handles callable values created inside the program, but an input callable reaches TsInterpreter.getInitialState and EtsHierarchy.classesForType(EtsFunctionType) throws before typeof runs. The existing typeOfInputFunction test remains disabled for this reason.
Minimal TypeScript example
export function kind(value: () => number): string {
return typeof value;
}
Expected behavior
A callable input is represented as a function value and kind(() => 1) returns "function". Symbolic execution must not silently classify it as an object or report an exhaustive search after a setup failure.
Acceptance criteria
- A focused source-level regression executes
kindfrom a function-typed parameter and checks the symbolic outcome. - A generated callable input is replayed in Node.js and produces the same observable result.
- Unsupported forms of callable inputs have an explicit unsupported outcome, distinct from a failed analysis.
- Ordinary object and concrete in-program callable
typeofbehavior remains covered.
Dependency
PR #459 addresses concrete callable values and exposes this separate initial-state gap. Keep this as one issue for function-typed inputs; do not expand PR #459 with unrelated function-input synthesis.
- Linguagem predominante
- Kotlin
- Estrelas
- 33
- Forks
- 27
- Merge médio
- 2d 20h
- PRs com merge (30d)
- 10
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de UnitTestBot/usvm
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
UnitTestBot/usvm#467 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 38/100
UnitTestBot/usvm#465 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
UnitTestBot/usvm#457 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
UnitTestBot/usvm#440 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
UnitTestBot/usvm#439 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de UnitTestBot/usvm
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
micronaut-projects/micronaut-core#13717 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
-
Ikiru change domainAbertaBug Domain changed
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 70/100
keiyoushi/extensions-source#19690 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Missing repro Platform: Android
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
software-mansion/react-native-reanimated#10816 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
KazumaProject/JapaneseKeyboard#1125 ·
Mantenedores costumam responder em até 1 dia