Compile error: Polymorphic External slot is not possible.

Mildred Ki'Lya ml.mildred593 at gmail.com
Tue Aug 25 18:34:37 UTC 2009


On 08/25/2009 07:42 PM, Jeremy Cowgar wrote:
> I am sorry for so many questions today, but I have been venturing into
> some new territory with Lisaac. I have one more... When I use this
> method more than once, I get a compilation error:
>
> Polymorphic External slot is not possible.
> Line 20 column 29 in BUTTON(C:/Development/Projects/Lisaac/libraries/iup-binding/button.li):
>   - perform_action h:POINTER :INTEGER <-
>
> I have committed my code into the Git repo, the file in question can be
> viewed online at:
>
> http://git.debian.org/?p=lisaac/libraries/iup-binding.git/.git;a=blob_plain;f=button.li;hb=6b17e7dfb7b053aade730acd8f5fd86a5ca41d05
>
> Now, to see how this is used, you can view the example program:
>
> http://git.debian.org/?p=lisaac/libraries/iup-binding.git/.git;a=blob_plain;f=example.li;hb=6b17e7dfb7b053aade730acd8f5fd86a5ca41d05
>
> If you comment out the line starting with "goodbye.set_action {" then
> the example program compiles and runs fine. However, uncomment that line
> and you get the above compile error.
>
> How do I solve this problem? I believe this is happening because Lisaac
> thinks that I call "perform_action" inside of the "BUTTON.set_action"
> slot. I actually do not. The only reason for the #if 0 ... block of code
> is so that Lisaac will actually output my External slot, "perform_action".
> Without calling "perform_action" somewhere in my code, the
> "perform_action" slot is optimized out of existence.
>
> Thanks for any help!
>
>   
I don't currently have Internet, so i'll try to form an answer to the
best of my knowledge.

First, don't look at what you comment to make it work. lisaac works such
a way that adding complexity makes it compiles things differently and it
can make it trigger errors that otherwise would have been ignored.

I think BUTTON must reimplement the slot perform_action from a parent.
And, Lisaac can't do that when the redefined slot is in the Section
External. It's simply not possible. Find another name for your external
slot.

External slots are not like any other slots, they work completely
differently, better not to try making one inherit from the other.

Mildred

-- 
Mildred Ki'Lya
╭───────── mildred593@online.fr ──────────
│ Jabber, GoogleTalk: <mildred at jabber.fr>
│ Website: <http://ki.lya.online.fr>           GPG ID: 9A7D 2E2B
│ Fingerprint: 197C A7E6 645B 4299 6D37 684B 6F9D A8D6 9A7D 2E2B


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/lisaac-devel/attachments/20090825/4c2b77c2/attachment.pgp>


More information about the Lisaac-devel mailing list