From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com [IPv6:2607:f8b0:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id 53C103857BAE for ; Tue, 19 Dec 2023 22:23:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 53C103857BAE Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 53C103857BAE Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::32a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703024631; cv=none; b=hQyp6I6nfipIkWpCwx3NN4raPxuS1KU1QCAxakh7lM0SdbFsh2wr8w7Bi1JYps8DtYmRr47FJmYIYoVv6g0helO+7qKKUCelHd4I9ngOE3e0PJdGBENZGkMX00d9AVTklw+aORmM1b4hpVpaQ+hmkvXYMJSmvAJAx5Wqoec2e40= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703024631; c=relaxed/simple; bh=KVvrICWqAOgUC6CKqJ8YJBMySiL6s7YnK35lPZ2zyHY=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=lMlhKFR4AqmjkUeGsZWKKhs7tFpqv2vQoJNqRWmzIgC/+5jXqs3I1xcaKtZHMZVERj48zC1WGZ0FQUIJePgfbIyS89C7tczLGeyOGBRQF+e2hy5ME5mAZATfPNclzm6F50jEgIjK5UkPHkyHa7UmcOBYdGz8wri8m4ZO4OW/okQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-6da55627149so1630990a34.1 for ; Tue, 19 Dec 2023 14:23:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703024629; x=1703629429; darn=sourceware.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Tk7O3Gqpn7U9NXg15+FFa30HCNErCzeLPTCvlxjPblw=; b=DkNCTFrXW9bigbp5NmMYdVvefujn6iZ8IrIp3GqHCghJgs8Hi2a8CR9CjTu0h33q95 cVPA3LEldR0zg4c7De4pMOXw8hQINXg2srzLtEXIHH15ygTHjfB/Nt3GR75GuSRy+Sr6 pgh5vw7KVu5bGqN230S/Vz9fKEpS53eXLPIuNAq9qdGfsj3KExyw7Gf7cX8mmg3nT99u 9Nwb5jrm8zhNzmf3a9JGVUKb8kqaoItQHYRwLb2dZ6tZdO2GQAOT4Xa3z734hW4Q2PpT SaEZlckNIYcyBWtDLNriTIylZja8MYJ3K++x1yVzqsgefumMDmjBeY3UYTE3qnrhJvWh Rq/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703024629; x=1703629429; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Tk7O3Gqpn7U9NXg15+FFa30HCNErCzeLPTCvlxjPblw=; b=np0/bpBI8bhi2RGUWdOGGHN0fBVITFCdY3mQGeqsNKXhkR4pxMi2h8JLX/yhi162/J /7xSc011Als+cJKsvf/ljy1aFSuyXgzTuC2aAyWt/JAMDJLKm6fGYE5kFqpHA4Wa3Ad/ 5u8LzNSJmXobuRWNdkHzUVooJOo2P6lLYSLxqfp+1OmdqrHgbbPcezmybVzYz+Tl2X8F anz8c5HMrt9G2qlO2ct+vTOWHiTDqPLzA0Y/NF/zY951VVMXOzrBy5v565dOArwItqBk ZvPMXxGFnalWKUQpTIJv1lGcsL+VA0/Vzb//dZX34aKmec1YImcV9s6vyIYhP58/aM67 rZ4w== X-Gm-Message-State: AOJu0YyCdAbOYcMjpb6tnUIPnWjYmlDU7wC2cj4iLWgCHq2oEuSVLmmw WV4uBAbaSGpMoJ115J1M6mNosaoegr8ZkHLXFx/fl7LI X-Google-Smtp-Source: AGHT+IGtA0AlURDR5cXa31wgRICyV8OF31z8Fi6WsSZWaxHUraw4AZz3pQ7WrkXo+agQyVtvloGLWeqTLhLySoLtCAk= X-Received: by 2002:a05:6830:349c:b0:6d9:ee22:a9eb with SMTP id c28-20020a056830349c00b006d9ee22a9ebmr12306035otu.20.1703024629497; Tue, 19 Dec 2023 14:23:49 -0800 (PST) MIME-Version: 1.0 From: Panicz Maciej Godek Date: Tue, 19 Dec 2023 23:23:39 +0100 Message-ID: Subject: A problem with interfaces To: kawa Content-Type: multipart/alternative; boundary="00000000000015c454060ce452ab" X-Spam-Status: No, score=-0.7 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.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000015c454060ce452ab Content-Type: text/plain; charset="UTF-8" GRASP is a fairly large project (over 22k lines of code in 77 files), but I ran into a problem. Until recently, I had an interface called Tile in the (editor interfaces elements) module, defined in the following way: (define-interface Tile (Element) (extent)::Extent) where define-interface is a macro that would expand to (define-simple-class Tile (Element) interface: #t ((extent)::Extent #!abstract)) The (editor interfaces elements) module imports the module (editor interfaces painting), and they are used in various places in the project. Among others, those interfaces are implemented by the Atom class, which is defined in the (editor types primitive) module (which imports both aforementioned modules) I tried refactoring this, by defining a new interface: (define-interface Extensive () (extent)::Extent) in the (editor interfaces painting) module, and changing the definition of Tile to (define-interface Tile (Extensive Element)) But when I do this, the system claims that Atom is not Extensive (even though it implements a sub-interface of the Tile interface). How could that be? Also, during compilation I get warnings like this from one of the modules: *type editor.interfaces.Painter is incompatible with required type editor.interfaces.Painter.* How are they supposed to be understood? --00000000000015c454060ce452ab--