From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x1133.google.com (mail-yw1-x1133.google.com [IPv6:2607:f8b0:4864:20::1133]) by sourceware.org (Postfix) with ESMTPS id D34743857404 for ; Fri, 25 Mar 2022 20:53:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D34743857404 Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-2d07ae0b1c0so95436707b3.2 for ; Fri, 25 Mar 2022 13:53:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uQeRGc66N/WZpbonpRBA6TjchrB1mCo3RNVLKhdVu0Q=; b=bC/CTfFYggLB9m9eVSxlVcUkvAbLO3jeCKd9xwvElR7hVSq5erNotbcWn4syMqc4Ku Mgo+O5xkQF5dP7bn6sR7KjMca1apsMgAFz7rpibQAV7fE2WbcHUU3+w+qAsueLHiZjW1 geww4cYlh5NhUA2Ou8hQZGV3dPE5nGqtlGbey2PiVqiTD6c3skSbMYqDdIZRCCYMGrDy 0ugjlwhIwB5NEj8YreVAipTd9RLisCLkq0Te6wr8v/x9cMH5qIAI50bBYAIfTMF1EPZ8 2t01hTgG9Y1TLkMzcIJOULiqw2LJuZeQxGoTZ4qt2aPuDRVJXyhS3Ap38UDyGGt1u8ma ZA6w== X-Gm-Message-State: AOAM531BJi1GtywNPA/8ZLUNQ1/Q+Q/oleJGckClcfe1uwJWVim1F3Hg NrKO6NuiUWGQeb8FeqNrnAeRWTqALG5gY5Q/xAd5ujFBRAY= X-Google-Smtp-Source: ABdhPJzFw9yA2FhUNA1kxF8VfRcwJ4F7OiH1xT9ZzVBfvhel9Q+5FmAJ6r0JX5yq3eN12wu1/oWY7ZGGoHQRnd6ejeU= X-Received: by 2002:a81:e343:0:b0:2db:58be:a8c7 with SMTP id w3-20020a81e343000000b002db58bea8c7mr12821962ywl.138.1648241637109; Fri, 25 Mar 2022 13:53:57 -0700 (PDT) MIME-Version: 1.0 References: <31ee8d16-0229-3c1a-a11d-2402f4fdffce@bothner.com> <8a9b979c-e33d-7e38-9f4c-039092d8169b@bothner.com> In-Reply-To: <8a9b979c-e33d-7e38-9f4c-039092d8169b@bothner.com> From: Panicz Maciej Godek Date: Fri, 25 Mar 2022 21:53:42 +0100 Message-ID: Subject: Re: A protected slot is not accessible in a subclass To: Per Bothner Cc: kawa@sourceware.org X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: kawa@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Kawa mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Mar 2022 20:53:59 -0000 pt., 25 mar 2022 o 19:46 Per Bothner napisa=C5=82(a): > > > On 3/25/22 02:59, Panicz Maciej Godek wrote: > > I tried this: > > (define-simple-class S (gnu.mapping.Symbol) > > ((*init*) > > (invoke-special gnu.mapping.Symbol (this) '*init* > (("foo":toString):intern) gnu.mapping.Namespace:EmptyNamespace) > > (set! (field (this) 'name) (("bar":toString):intern)))) > > but it gives a similar error: > > java.lang.RuntimeException: no such field name in S > > at gnu.kawa.reflect.SlotSet.apply(SlotSet.java:115) > at gnu.kawa.reflect.SlotSet.apply3(SlotSet.java:120) > > at S.(tty:14) > > This fails because the (set! (field ...) ...) isn't inlined, so we end up > using > run-time reflection. This is a missing Kawa optimization. > > Using set-field! instead does work: > > (set-field! (this) 'name (("bar":toString):intern)) > > Note in this case you need to add: > > (import (kawa reflect)) ; for set-field! > Yes, that one works! Thanks! > > I checked in a fix so either of these now work: > > (set! (this):name (("bar":toString):intern)) > (set! name (("bar":toString):intern)) > > This one works now too, thanks a lot!