Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117415 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 12648 invoked from network); 24 Mar 2022 13:53:31 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 24 Mar 2022 13:53:31 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 6E87E1804AF for ; Thu, 24 Mar 2022 08:20:31 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS16276 94.23.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from processus.org (ns366368.ip-94-23-14.eu [94.23.14.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 24 Mar 2022 08:20:30 -0700 (PDT) Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by processus.org (Postfix) with ESMTPA id B800A5100316; Thu, 24 Mar 2022 15:20:27 +0000 (UTC) Message-ID: <2abc84a5-0ca2-9431-0585-d3d6ee3df456@processus.org> Date: Thu, 24 Mar 2022 16:20:27 +0100 MIME-Version: 1.0 Content-Language: en-US To: Mark Niebergall Cc: Larry Garfield , php internals References: <76c399cb-fb29-4583-a212-8eb69740c96b@www.fastmail.com> <95fb2485-fa60-a107-5fd2-acdcef09bca3@processus.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Authentication-Results: processus.org; auth=pass smtp.auth=pierre-php@processus.org smtp.mailfrom=pierre-php@processus.org X-Spamd-Bar: / Subject: Re: [PHP-DEV] Typed constants revisited From: pierre-php@processus.org (Pierre) Le 24/03/2022 à 16:06, Mark Niebergall a écrit : > So you are correct, the const value does have a value that has a type, but > there is no way to enforce which type the value is or to use const with > inheritance, which is part of the bigger picture here. That was exactly my point: the type could simply implicitely be the one of the original value. Then the engine just has to use the existing covariance/contravariance rules for type checks based upon the guessed value type. This would fix the type safety issue you are referring to. -- Regards