Skip to content

Project 5 - TAC - #14

Open
SapoSopa wants to merge 33 commits into
rbonifacio:mainfrom
SapoSopa:TAC
Open

Project 5 - TAC#14
SapoSopa wants to merge 33 commits into
rbonifacio:mainfrom
SapoSopa:TAC

Conversation

@SapoSopa

Copy link
Copy Markdown

Grupo:

  • Álvaro Cavalcante Negromonte
  • Gabriel Valença Mayerhofer
  • Henrique César Higino Holanda Cordeiro
  • João Victor Nascimento Lima
  • Vinicius de Souza Rodrigues

Resumo

Este PR conclui o suporte a funções de primeira classe no TAC, adicionando representação explícita para labels de função, criação de closures e chamadas indiretas. Com isso, expressões lambda passam a ser baixadas para funções internas com nome único, encapsulam o valor funcional correto e podem ser invocadas mesmo quando o callee não é um identificador de função direta. A geração de TAC também foi ajustada para reconhecer variáveis locais, declarações com inicialização, retornos em lambdas e o fallback entre chamada direta e indireta conforme o tipo do callee.

Além da mudança no codegen e no IR, a branch atualiza a documentação de semântica do milestone 3 para refletir o contrato do TAC para first-class functions e amplia a suíte de testes com cenários de lambda, captura de variável externa, atribuição de closure e execução via call indireta. Isso ajuda a travar o comportamento esperado e a evitar regressões na integração entre AST, type checker, interpreter e TAC.

SapoSopa and others added 30 commits April 13, 2026 21:47
[TypeChecker] Check lambda and function-value calls
[FEATURE]: Add closure snapshot capture for lexical environment restoration
Copilot AI review requested due to automatic review settings June 29, 2026 00:55

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.

6 participants