Skip to content

Refactor module registration methods and move interface to separate files - #21

Merged
leonelsanchesdasilva merged 1 commit into
principalfrom
refatoracao-modulos
Mar 29, 2026
Merged

Refactor module registration methods and move interface to separate files#21
leonelsanchesdasilva merged 1 commit into
principalfrom
refatoracao-modulos

Conversation

@ItaloCobains

Copy link
Copy Markdown
Collaborator

Refatora os métodos registrarModulo* de compilador-llvm.ts para fontes/registro-modulos/ usando mixins, reduzindo o tamanho do arquivo principal. Move a interface EntradaFuncaoModulo para seu próprio arquivo e altera propriedades de private para protected.

Refatora os métodos registrarModulo* de compilador-llvm.ts para
fontes/registro-modulos/ usando mixins, reduzindo o tamanho do
arquivo principal. Move a interface EntradaFuncaoModulo para seu
próprio arquivo e altera propriedades de private para protected.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refatora o registro de módulos nativos do CompiladorLLVM, extraindo os antigos métodos registrarModulo* para fontes/registro-modulos/ e movendo a interface EntradaFuncaoModulo para um arquivo dedicado, reduzindo o tamanho e acoplamento de compilador-llvm.ts.

Changes:

  • Extraiu os registros de módulos (matemática, física, etc.) para arquivos em fontes/registro-modulos/ e criou um barrel export (index.ts).
  • Moveu EntradaFuncaoModulo para fontes/interfaces/entrada-funcao-modulo.ts e atualizou imports.
  • Passou diversos membros/métodos de private para protected e conectou os registradores via atribuição em CompiladorLLVM.prototype.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
fontes/registro-modulos/matematica.ts Novo registrador do módulo matematica extraído do compilador.
fontes/registro-modulos/fisica.ts Novo registrador do módulo fisica.
fontes/registro-modulos/estatistica.ts Novo registrador do módulo estatistica.
fontes/registro-modulos/arquivos.ts Novo registrador do módulo arquivos.
fontes/registro-modulos/csv.ts Novo registrador do módulo csv.
fontes/registro-modulos/json.ts Novo registrador do módulo json.
fontes/registro-modulos/http.ts Novo registrador do módulo http.
fontes/registro-modulos/criptografia.ts Novo registrador do módulo criptografia.
fontes/registro-modulos/dados.ts Novo registrador do módulo dados.
fontes/registro-modulos/index.ts Barrel export dos registradores extraídos.
fontes/interfaces/entrada-funcao-modulo.ts Nova localização da interface EntradaFuncaoModulo.
fontes/compilador-llvm.ts Removeu métodos antigos, adicionou imports, declarou “mixins” e atribuiu funções ao prototype; ajustou visibilidades.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread fontes/compilador-llvm.ts
private tipoEstruturaVetor: llvm.StructType = null;
private pilhaBlocosLoop: Array<{ blocoSaida: llvm.BasicBlock; blocoRetorno: llvm.BasicBlock }> = [];
private contemExcecoes: boolean = false;
protected mapaModulos: Map<string, Map<string, EntradaFuncaoModulo>> = new Map();

Copilot AI Mar 29, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mapaModulos foi alterado para protected, mas os registradores extraídos em fontes/registro-modulos/* acessam this.mapaModulos fora da classe. Em TypeScript, membros protected só são acessíveis dentro da classe ou subclasses, então isso tende a quebrar a compilação. Solução: tornar mapaModulos public (ou expor um método público para registrar módulos e manter o mapa encapsulado).

Suggested change
protected mapaModulos: Map<string, Map<string, EntradaFuncaoModulo>> = new Map();
public mapaModulos: Map<string, Map<string, EntradaFuncaoModulo>> = new Map();

Copilot uses AI. Check for mistakes.

@leonelsanchesdasilva leonelsanchesdasilva left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Obrigado!

@leonelsanchesdasilva
leonelsanchesdasilva merged commit 1bbd73b into principal Mar 29, 2026
6 checks passed
@leonelsanchesdasilva
leonelsanchesdasilva deleted the refatoracao-modulos branch March 29, 2026 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants