Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:122690 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 828FA1AD8F6 for ; Tue, 19 Mar 2024 16:51:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1710867089; bh=+cGELDSC1PEkTCrjbWg1w+3aAz2rxAm/XZVbffG8GeY=; h=References:In-Reply-To:From:Date:Subject:To:From; b=GNr3gpJre+RtWQcI/q5zM4poQjZDUR7qvcZRA+I3dR5Rh/Sj15NQM3wIpzJvz/raA NBm5uYHSQC2L7MBGC0SkLgcRcdBuL+sdU2di44N3UP93v4T2RjQGkyA1KNQIJZHgl8 Y5hSDcfj7QeFvQj9SXH5eaHfNTAOmjZzhmx7nFkAS33HcjnnZbrRQ7SmhOKHI0JEfW PvtZQNGZwsmfjafLjqcXnY3vIcpsICcIIE7hC1ZU+1TbP9+UMIADT9WbInrOC2y4NX YW2ET4/DxlurcwVzcLSj4Pc5ZqXco4E4Ch96T4OqHfkugImiy7KmcsnC2LO3np2Mak 9mSVinCFB4lpQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 61D9C1808B7 for ; Tue, 19 Mar 2024 16:51:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 19 Mar 2024 16:51:27 +0000 (UTC) Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-690de619293so34820206d6.0 for ; Tue, 19 Mar 2024 09:51:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710867066; x=1711471866; darn=lists.php.net; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+cGELDSC1PEkTCrjbWg1w+3aAz2rxAm/XZVbffG8GeY=; b=Fonqx2yBiIJdnhikwSfKB8nNDFX3DXEoflDoik22c5OaEqGb7IIPhQ37m/ULOq7yQg buhhlASV1eOGQmftMKQVJdYtPsgx7G2oly0RcA8mWrrLg1UxtsQERw6Yku9F4Eylxfi+ 3e+izHgJp8JrrfvkT3C8ZMXHypMcJ7fln3AistngF5sqSSAZtWyL5PtHkORxHYiXusFf v+sJdh/g/T453kV7aCq1vhGqaM2YWkyPcDC5lkJCakhMTEHkXvxeGRCz9TDnHhnoXx8g eF1LTagLMyqUvBTyRml2oV2BECuucTmasqAvRx24NRuhSHSN3yk0pIwvsXZVTkhbB/JV FzPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710867066; x=1711471866; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+cGELDSC1PEkTCrjbWg1w+3aAz2rxAm/XZVbffG8GeY=; b=SBVjhy8FqnawgwErbtE/IaTxCE8YDerHBtjypo/Za4c6EEN8kTv+P2KW+qxtJcb4nK ynvvKb5+bOQGyDxVtEC+rWA1KMaGAcQk/pY6G0+sDNt8AHn1pHZdNLKKY3zG67DSWoTw QHor6xb+lQ6uQLHTkKSJsTK5NbqRyvnuy23ETvfIsGqcHcFAGLUPf92jwNn/Otp+KABw aokxXsWuf2ihQq1WmgdEdFONe+Sh0c0/fNTs0U6BQgowAPoT3b5OQMIUjZTsuD/TlHa0 GVkCZ37zpFe1HJ75nHUim8f/yEfMQpQTDm4Mmbkw0aR1c+PuOS/MYfHTz7scK+XwLBC0 4+ew== X-Gm-Message-State: AOJu0YxxNcyN8EkJRW7UQgZ+DZamLo4kP9TN0obx443y5cAJgjMJX7Gi /mE6X+yhh9zGzL5LDub8eeziq7+K21M4xVKXg5q6siyhnfn4mDM3Syd88V65GNDGH8Oo3B00yXU ceZ/t3fdtRTdwIRXqUDyl5h7fH3pc8nzwKwBu1edm X-Google-Smtp-Source: AGHT+IEOXSLATWqQtsGxXZlHoRHxHL4HCcfCXiVNr4JLVXL5kwbrI3PeXWBABr5CJAPDrQjtnngRPSu87PQXO9hsPxw= X-Received: by 2002:a0c:e388:0:b0:691:783:5410 with SMTP id a8-20020a0ce388000000b0069107835410mr16300188qvl.33.1710867066390; Tue, 19 Mar 2024 09:51:06 -0700 (PDT) Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net MIME-Version: 1.0 References: In-Reply-To: Date: Tue, 19 Mar 2024 17:50:55 +0100 Message-ID: Subject: Re: [PHP-DEV] Proposal: AS assertions To: internals Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: tovilo.ilija@gmail.com (Ilija Tovilo) Hi Robert On Tue, Mar 19, 2024 at 5:24=E2=80=AFPM Robert Landers wrote: > > I've been thinking about this as an RFC for awhile, but with generics > being far off (if at all), I'd like to propose a useful idea: reusing > the AS keyword in a different context. > > Example: > > $x =3D $attributeReflection->newInstance() as MyAttribute; > > This would essentially perform the following code: > > assert(($x =3D $attributeReflection->newInstance()) instanceof MyAttribut= e); See https://wiki.php.net/rfc/pattern-matching#throwing_alternative. I believe this idea would combine nicely with pattern matching. It has many more uses there than just simple class type matching, and could even be used for things like destructuring. Ilija