public inbox for kawa@sourceware.org
 help / color / mirror / Atom feed
* Syntax for calling super implementation when overriding a method
@ 2019-04-01 18:59 Duncan Mak
  2019-04-02 13:47 ` Per Bothner
  0 siblings, 1 reply; 2+ messages in thread
From: Duncan Mak @ 2019-04-01 18:59 UTC (permalink / raw)
  To: kawa mailing list

Hello Per,

I see that there's syntax (this) for referring to the current instance.

When I'm defining a class hierarchy, and I'd like to override a method in a
subclass, is there a similar syntax, i.e. (super)?

For now, I'm doing this (superclass:method instance ...), but it'd be nice
not having to explicitly name the superclass.


Thanks!

-- 
Duncan.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Syntax for calling super implementation when overriding a method
  2019-04-01 18:59 Syntax for calling super implementation when overriding a method Duncan Mak
@ 2019-04-02 13:47 ` Per Bothner
  0 siblings, 0 replies; 2+ messages in thread
From: Per Bothner @ 2019-04-02 13:47 UTC (permalink / raw)
  To: Duncan Mak, kawa mailing list

On 4/1/19 11:58 AM, Duncan Mak wrote:
> Hello Per,
> 
> I see that there's syntax (this) for referring to the current instance.
> 
> When I'm defining a class hierarchy, and I'd like to override a method in a
> subclass, is there a similar syntax, i.e. (super)?
> 
> For now, I'm doing this (superclass:method instance ...), but it'd be nice
> not having to explicitly name the superclass.

The Kawa manual suggests using invoke-special, and has a few examples:

    (invoke-special supersuper (this) 'methodname arg ...)

where 'methodname is '*init* in the case of a constructor.

However (as you and the manual also notes), this is annoyingly verbose.

One approach is as you suggest:

    ((super):methodname arg ...)

This would start by having (super) expand to a distinct variant of ThisExpr,
but changing the code-generation to call invokespecial.

An alternative (possibly easier to implement) might be

   (invoke-super 'methodname arg ...)

Either of these would be a good project in terms of learning more about how Kawa works.

-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-04-02 13:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-01 18:59 Syntax for calling super implementation when overriding a method Duncan Mak
2019-04-02 13:47 ` Per Bothner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).