Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Component bindgen fails when a parameter or field is named `b`

Aberta Para iniciantes
#1,940 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
72/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
devtools

Direção de pesquisa

O bug está no gerador de código em src/hyperlight_component_util/src/hl.rs, onde o decodificador armazena contadores de bytes em uma variável local chamada b que colide com um parâmetro ou campo WIT chamado b; a issue aponta a linha 64 como primeira ocorrência. Reproduza com o trecho WIT da issue usando host_bindgen!, depois encontre no hl.rs as outras variáveis locais de contador que reutilizam esse padrão. Está concluído quando o código gerado compila para nomes WIT b e os contadores usam nomes derivados de id.

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

Descrição

lifecycle/needs-review

host_bindgen! output doesn't compile when a WIT parameter or record field is named b:

package a:b;
world w { export f: func(a: u32, b: string) -> u32; }
error[E0608]: cannot index into a value of type `usize`
    let b_field = &r#b[b_cursor..];

The generated decoder stores byte counts in a local named b, for example at hl.rs#L64. The WIT name b becomes the identifier r#b, which is the same name, so the counter shadows the value. The same pattern appears in several other places in hl.rs.

The counters need names that can't collide with WIT names, for example derived from id as other temporaries are.

Linguagem predominante
Rust
Estrelas
4.7k
Forks
217
Merge médio
2d 55min
PRs com merge (30d)
56

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de hyperlight-dev/hyperlight

Todas as issues de hyperlight-dev/hyperlight

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

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