Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99206 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 24571 invoked from network); 26 May 2017 16:10:34 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 May 2017 16:10:34 -0000 Authentication-Results: pb1.pair.com smtp.mail=derokorian@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=derokorian@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.47 as permitted sender) X-PHP-List-Original-Sender: derokorian@gmail.com X-Host-Fingerprint: 209.85.218.47 mail-oi0-f47.google.com Received: from [209.85.218.47] ([209.85.218.47:33433] helo=mail-oi0-f47.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 90/A6-10292-97358295 for ; Fri, 26 May 2017 12:10:33 -0400 Received: by mail-oi0-f47.google.com with SMTP id w10so18377809oif.0 for ; Fri, 26 May 2017 09:10:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=H5bMyKI+DoWJAcZmcCqayrn1nabqwpVp2qqRtVfGlrU=; b=Ge3qNcy7fSf3TZTm5HiiknbXqyVP+neRuvUoxG5mNiQv5nbu9GXXYCd5+OcbvfyAm3 5IdF3XKUxjZj1XBR81k8ddlv6z2S8NJO1nFEAP4juLAqgQQBhkohgUqc+g0A7CKdAeXr YXf6IryZXx46tAPf6V73cHI21Q0NOCDk6f59km9FKNB5wRiNRyT6yOqja+zttJVWi0Pf tQPxrwRg3Pl8W0XL/H8oQGW+oxFqYTu+sLy3AT9xDbqAUMV7wt4xWH/vTYpz49ag13uL H2nRWHfSA4UoRsAuWv+/ZPe3S1xX/8YRnYH/gUu2BfUpnrgLwgFYePNoXgSnymsRVwLx Qlcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=H5bMyKI+DoWJAcZmcCqayrn1nabqwpVp2qqRtVfGlrU=; b=TcUYM2G36vV/QvD/7V2ZBi7Hs9n60xH4vqVLht2ak4zgDxxzfpS6r1LvAjuK2Arl5r iZ5uS6HAyI61DRBEfg0Xzxh3VPgEdCF7N11x4E4BX5HsAwvcDlJVuCmUGj4trYAN9C9d DpUMa67xJC8XD8EyPTO1iowbCWrXpYQU6gw0LZl/8XcKhqt60e79i0Tbgo+BRZFRmULl YTx8wDDVSNhXAMkdwOUv2KnW6OFL2FyGW7vw1cpcMJyi9AAsjYsm/mjg5ZXopjY2pvKs orL9scEweyAue2BHwCJ60r1k/CumqW5jOxgGQ9jSu3cnLJo/AislewKXzRXfojsX0zsR we1Q== X-Gm-Message-State: AODbwcANMkd9X/c4xpr2p9weV5vSJaMOs/hyqfj33FTh0rI1BVo0qJlY L1krTxfTTbGxC7nlVwzo705bfUnV1A== X-Received: by 10.157.26.44 with SMTP id a41mr1384457ote.67.1495815029989; Fri, 26 May 2017 09:10:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.23.5 with HTTP; Fri, 26 May 2017 09:10:29 -0700 (PDT) In-Reply-To: <13ad1065-ef32-067b-5e53-19da3eaa9f76@rhsoft.net> References: <269187f4-5924-a7cc-9163-40134546451f@fleshgrinder.com> <2dca6983-bbde-6042-6608-a593df2e85ed@gmx.de> <35177214-db24-5bc8-2020-37b2951259a2@rhsoft.net> <13ad1065-ef32-067b-5e53-19da3eaa9f76@rhsoft.net> Date: Fri, 26 May 2017 10:10:29 -0600 Message-ID: To: "lists@rhsoft.net" Cc: "internals@lists.php.net" Content-Type: multipart/alternative; boundary="001a1141c7e283297805506f93e8" Subject: Re: [PHP-DEV] Parameter type widening RFC From: derokorian@gmail.com (Ryan Pallas) --001a1141c7e283297805506f93e8 Content-Type: text/plain; charset="UTF-8" On Fri, May 26, 2017 at 9:01 AM, lists@rhsoft.net wrote: > > > Am 26.05.2017 um 16:26 schrieb Dan Ackroyd: > >> On 26 May 2017 at 13:23, lists@rhsoft.net wrote: >> >>> does that also fix the issue https://bugs.php.net/bug.php?id=74394 >>> >> >> >> Dear Anonymous, >> >> That "issue" is actually 3 issues. >> >> case 1 >> >> class A { >> public function test($a) {} >> } >> class B extends A { >> public function test(string $a) { } >> } >> >> This breaks LSP - because B::test doesn't accept all the things that >> A::test can accept and so is unlikely to ever be supported. >> > > and how is that a problem? > > A accepts anything > B limits it's inut to a *subset* of "anything" > > Because, if I have a function foo(A $a) { $a->test(new Bar()) } that I cannot pass B into this function, even though it is a subclass of A. You should be able to pass any subclass where its parent is expected, allowing parameter narrowing (covariance) would break this. --001a1141c7e283297805506f93e8--