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

[Delégua] Refatorar construto Super para trabalhar com um construto ao invés do símbolo metodo #587

Open
leonelsanchesdasilva opened this issue Jan 20, 2024 · 4 comments
Assignees
Labels
💎 recompensa-10 Pagamos recompensa: 10 dólares good first issue Good for newcomers refatorar Pedidos de refatoração de código

Comments

@leonelsanchesdasilva
Copy link
Contributor

Em #584, descobrimos que Super tem como propriedade um símbolo metodo. Isso atende bem esse tipo de construção:

classe Ancestral {
    propriedade1: numero

    metodoAncestral() {
        isto.numero = 1
    }
}

classe Herdada herda Ancestral {
    construtor() {
        super.metodoAncestral()
    }
}

Mas não este outro tipo de construção:

classe Ancestral {
    propriedade1: numero

    metodoAncestral(outroNumero: numero) {
        isto.numero = outroNumero
    }
}

classe Herdada herda Ancestral {
    construtor() {
        super.metodoAncestral(1)
    }
}

Ou ainda:

classe Ancestral {
    propriedade1: numero
}

classe Herdada herda Ancestral {
    construtor() {
        super.propriedade1 = 1
    }
}
  • metodo deve ser renomeada para metodoOuPropriedade;
  • metodoOuPropriedade deve ser um Construto, não um Simbolo;
  • Todos os colaterais em todos os dialetos devem ser resolvidos;
  • super() hoje em dia é uma Chamada. Verificar se há necessidade de alguma alteração.
@leonelsanchesdasilva leonelsanchesdasilva added good first issue Good for newcomers refatorar Pedidos de refatoração de código 💎 recompensa-10 Pagamos recompensa: 10 dólares labels Jan 20, 2024
@leonelsanchesdasilva leonelsanchesdasilva changed the title Refatorar construto Super para trabalhar com um construto ao invés do símbolo metodo [Delégua] Refatorar construto Super para trabalhar com um construto ao invés do símbolo metodo Feb 3, 2024
@ItaloCobains ItaloCobains self-assigned this Jun 30, 2024
@ItaloCobains
Copy link
Contributor

ItaloCobains commented Jun 30, 2024

Então Delegua deve instanciar a classe Ancestral com super() ou com super.qualquerMetodoOuPropriedade ?

@leonelsanchesdasilva
Copy link
Contributor Author

Então Delegua deve instanciar a classe Ancestral com super() ou com super.qualquerMetodoOuPropriedade ?

Seria com um super() implícito. Se há ancestral definido, a inicialização define a referência de super, mas não como um Simbolo, e sim como um Construto.

@ItaloCobains
Copy link
Contributor

ItaloCobains commented Jul 12, 2024

Isso é para ser possível?

classe Ancestral {
    propriedade1: numero
    propriedade2: numero
}

classe Herdada herda Ancestral {
    construtor() {
        super.propriedade1 = 1
        super.propriedade2 = 2
    }
}

Eu estava pensando em criar o metodoOuPropriedade no Super, porem se for possível essa sintaxe acho que terei que extrair a lógica para fora.

@leonelsanchesdasilva
Copy link
Contributor Author

Isso é para ser possível?

classe Ancestral {

    propriedade1: numero

    propriedade2: numero

}



classe Herdada herda Ancestral {

    construtor() {

        super.propriedade1 = 1

        super.propriedade2 = 2

    }

}

Eu estava pensando em criar o metodoOuPropriedade no Super, porem se for possível essa sintaxe acho que terei que extrair a lógica para fora.

É sim.

Sim, vai ser necessário trazer a lógica para fora.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💎 recompensa-10 Pagamos recompensa: 10 dólares good first issue Good for newcomers refatorar Pedidos de refatoração de código
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants