Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erro ao usar o operador += em arrays #685

Closed
Danguya opened this issue Jun 23, 2024 · 4 comments · Fixed by #686
Closed

Erro ao usar o operador += em arrays #685

Danguya opened this issue Jun 23, 2024 · 4 comments · Fixed by #686
Assignees
Labels
💎 recompensa-8 Pagamos recompensa: 8 dólares problema Problemas na execução do Delégua

Comments

@Danguya
Copy link

Danguya commented Jun 23, 2024

Erro ao usar o operador += em arrays

Descrição:

Quando tento usar o operador += em um elemento de um array, ocorre um erro. No entanto, o mesmo operador funciona conforme esperado com variáveis simples.

Passos para Reproduzir:

  1. Declare uma variável de array: var pilha = [1, 2, 3, 4];
  2. Tente usar o operador += em um elemento do array: pilha[0] += 8;
  3. Observe o erro gerado.
  4. Declare uma variável simples: var t = 2;
  5. Use o operador += na variável simples: t += 11;
  6. Observe que isso funciona conforme esperado.

Comportamento Esperado:

Esperava-se que o operador += pudesse ser usado diretamente em elementos de arrays da mesma forma que funciona com variáveis simples.

Comportamento Atual:

Ocorre um erro ao tentar usar o operador += em elementos de arrays.

Ambiente

https://designliquido.github.io/delegua-web/

Exemplo de Código:

var pilha = [1, 2, 3, 4];
pilha[0] += 8; // Isso gera um erro

var t = 2;
t += 11;
console.log(t); // Isso funciona e imprime 13
@leonelsanchesdasilva leonelsanchesdasilva added problema Problemas na execução do Delégua 💎 recompensa-8 Pagamos recompensa: 8 dólares labels Jun 25, 2024
@ItaloCobains
Copy link
Contributor

O problema começa nessa linha.

return new Atribuir(this.hashArquivo, (expressao.esquerda as Variavel).simbolo, expressao);

a expressao.esqueda é um AcessoIndiceVariavel e ele não tem acesso a simbolo.

@ItaloCobains
Copy link
Contributor

@leonelsanchesdasilva é esperado que o simbolo da expressão Atribuir seja do tipo COLCHETE_DIREITO ?

{
  linha: 2,
  hashArquivo: -1,
  assinaturaMetodo: "<principal>",
  expressao: {
    linha: 2,
    hashArquivo: -1,
    simbolo: {
      tipo: "COLCHETE_DIREITO",
      lexema: "",
      literal: null,
      linha: 2,
      hashArquivo: -1,
    },
    valor: {
      linha: 2,
      hashArquivo: -1,
      esquerda: {
        linha: 2,
        hashArquivo: -1,
        entidadeChamada: {
          linha: 2,
          hashArquivo: -1,
          simbolo: {
            tipo: "IDENTIFICADOR",
            lexema: "pilha",
            literal: null,
            linha: 2,
            hashArquivo: -1,
          },
        },
        indice: {
          linha: 2,
          hashArquivo: -1,
          valor: 0,
        },
        simboloFechamento: {
          tipo: "COLCHETE_DIREITO",
          lexema: "",
          literal: null,
          linha: 2,
          hashArquivo: -1,
        },
      },
      operador: {
        tipo: "MAIS_IGUAL",
        lexema: "+",
        literal: null,
        linha: 2,
        hashArquivo: -1,
      },
      direita: {
        linha: 2,
        hashArquivo: -1,
        valor: 8,
      },
    },
  },
}```

@ItaloCobains ItaloCobains self-assigned this Jun 25, 2024
@leonelsanchesdasilva
Copy link
Contributor

@ItaloCobains O lado esquerdo da atribuição deveria ser um construto, e não um símbolo. O motivo de ser assim pode ser tanto heranças de Égua quanto alguma preguiça minha.

O impacto é uma boa refatoração, possivelmente impactando todos os dialetos.

@ItaloCobains
Copy link
Contributor

@leonelsanchesdasilva acho que entendi. Darei uma atenção para essa issue

@ItaloCobains ItaloCobains linked a pull request Jun 29, 2024 that will close this issue
leonelsanchesdasilva added a commit that referenced this issue Jun 29, 2024
* Adicionando teste simulando issue #685
* Resolvendo problema de AcessoIndiceVariavel não ter atributo simbolo
* Resolvendo problema na atribuicao de valor em array
* Trazendo de volta teste relativo a aglutinação de argumentos de função.
---------

Co-authored-by: Leonel Sanches da Silva <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💎 recompensa-8 Pagamos recompensa: 8 dólares problema Problemas na execução do Delégua
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants