@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
24 lines • 1.18 kB
TypeScript
import { InterpretadorInterface } from '../../interfaces';
import { ArgumentoInterface } from '../argumento-interface';
import { Chamavel } from './chamavel';
import { DescritorTipoClasse } from './descritor-tipo-classe';
import { ObjetoDeleguaClasse } from './objeto-delegua-classe';
/**
* Objeto retornado por `super()`. Carrega a instância atual e o ponto de partida
* no OReM, permitindo herança cooperativa em chamadas do tipo `super().meuMetodo()`.
*
* Estende `Chamavel` para que `super()` seja resolvido pelo caminho normal de
* chamada em `visitarExpressaoDeChamada`, retornando o próprio proxy para encadeamento.
*/
export declare class SuperProxy extends Chamavel {
instancia: ObjetoDeleguaClasse;
proximaClasse: DescritorTipoClasse;
constructor(instancia: ObjetoDeleguaClasse, proximaClasse: DescritorTipoClasse);
aridade(): number;
/**
* `super()` executa o construtor da próxima classe no OReM e retorna
* o próprio proxy para permitir encadeamento: `super().meuMetodo()`.
*/
chamar(visitante: InterpretadorInterface, argumentos: ArgumentoInterface[]): Promise<SuperProxy>;
}
//# sourceMappingURL=super-proxy.d.ts.map