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

createInterface indents a copied type by its source column

Aberta Para iniciantes
#9,135 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
74/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
ocaml
Domínio
compilers

Direção de pesquisa

Comece em analysis/src/create_interface.ml, especialmente em Source_file_extractor.extract e no caso Sig_type de process_signature, onde o issue identifica o texto copiado e o tratamento da indentação. Reproduza o problema com o exemplo Make fornecido e verifique se um módulo de uma linha, como module M = {type t = int}, apresenta o mesmo problema. O trabalho estará concluído quando as interfaces geradas indentarem as declarações de tipo copiadas no local em que são geradas; o payload não especifica nenhum arquivo de teste.

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

Descrição

createInterface copies a type declaration from the source with the column it has there as its indentation, instead of the indentation of the place it is printed at.

module Make = (X: {type t}) => {
  type u = X.t
}

generates

module Make: (
  X: {
                   type t
  },
) =>
{
  type u = X.t
}

type t is at column 19 in the source. Source_file_extractor.extract (analysis/src/create_interface.ml) prefixes the first line of the copied text with col_start spaces, and the Sig_type case of process_signature adds that text without its indent. A type in a module written on one line, such as module M = {type t = int}, is likely affected the same way.

Linguagem predominante
OCaml
Estrelas
7.5k
Forks
484
Merge médio
21h 9min
PRs com merge (30d)
255

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 rescript-lang/rescript

Todas as issues de rescript-lang/rescript

Issues semelhantes

Mais issues de Compilers

Receba novas issues na sua caixa de entrada

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