Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:60446 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 29414 invoked from network); 4 May 2012 18:30:14 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 4 May 2012 18:30:14 -0000 Authentication-Results: pb1.pair.com smtp.mail=scott@macvicar.net; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=scott@macvicar.net; sender-id=unknown Received-SPF: error (pb1.pair.com: domain macvicar.net from 209.85.160.42 cause and error) X-PHP-List-Original-Sender: scott@macvicar.net X-Host-Fingerprint: 209.85.160.42 mail-pb0-f42.google.com Received: from [209.85.160.42] ([209.85.160.42:53323] helo=mail-pb0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 47/A1-18322-53024AF4 for ; Fri, 04 May 2012 14:30:14 -0400 Received: by pbbrp12 with SMTP id rp12so4490637pbb.29 for ; Fri, 04 May 2012 11:30:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:content-type:content-transfer-encoding:subject:date:message-id :to:mime-version:x-mailer:x-gm-message-state; bh=vTLh+CXY4+LGJPbBB0E+LbFCItKr+rH4SniisJRl4IQ=; b=ooORcVPgzZ5RpGdkVlWDDVQXty9PVGJl/iCzFcoP+SSnPVJy8fFOiUDAmkzeVwl9/o 4Zj2m6WBK1YyvCKWup69Oz4kqUrOtNFUOGNWhxNYZ7lOo95GEjlWTPCgVoj3tLlMcRh/ sB83c4TYcRncxfPjriPiEwL8nplWElZ3M2M5k8h0xYiTz6+GLLCafqT5UmIlQnivg/iS OT6hYIOE4kEvMiYmgO6fGT9oIq009bSOvhQ+kulfvbKQwQqrHWSyPG3iaPLt3t83DB1E IwjD/ec8qwPj/shfEwiBr1V7zF8aEMbxB4/9tRjq0GJE9k0WQLkBY06pmzU8ppKCxrCl ofJw== Received: by 10.68.233.136 with SMTP id tw8mr3081049pbc.71.1336156210850; Fri, 04 May 2012 11:30:10 -0700 (PDT) Received: from [172.25.22.11] ([173.252.71.3]) by mx.google.com with ESMTPS id pw10sm6679245pbb.30.2012.05.04.11.30.07 (version=SSLv3 cipher=OTHER); Fri, 04 May 2012 11:30:09 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Date: Fri, 4 May 2012 11:30:06 -0700 Message-ID: <9652E99E-97FF-4D62-99CE-EE3B5E27503E@macvicar.net> To: PHP Internals Mime-Version: 1.0 (Apple Message framework v1257) X-Mailer: Apple Mail (2.1257) X-Gm-Message-State: ALoCoQklTgP/3tK5kVRvAmM8T5Ifp+Dkg6DB+m3/80hdjcNHcGEivlzfgNpc2GctFyP90oYw6ocd Subject: Enforcing final in traits From: scott@macvicar.net (Scott MacVicar) This caused a few bugs for us / confusion. The final keyword is accepted = inside a trait but it the class also defines a method without the final = keyword this takes precedence. Two solutions: Enforce final when a trait defines - = https://whisky.macvicar.net/patches/0001-If-a-trait-declares-a-method-as-f= inal-enforce-that.patch Prohibit final form being used in a trait - = https://whisky.macvicar.net/patches/002-traits-Disable-use-of-final-keywor= d.patch I'm for the first solution here - S=