Enums should not be allowed to implement interfaces with properties in 8.4
Offen
Bug
Category: Engine
- Vorherrschende Sprache
- C
- Sterne
- 40.4k
- Forks
- 8.2k
- Ø Merge
- 2 T. 13 Std.
- Gemergte PRs (30 T.)
- 96
Beschreibung
Description
The following code:
interface I
{
public string $x { get; }
}
enum E implements I
{
}
Resulted in this output:
PHP Fatal error: Enum E must implement 1 abstract private method (I::$x::get)
But I expected this output instead:
PHP Fatal error: Enum E cannot implement interfaces with properties
PHP Version
PHP 8.4.0-dev (cli) (built: Sep 24 2024 14:38:59) (NTS)
Operating System
MacOS
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der im Issue gezeigten Reproduktion für PHP enum und interface und sieh dir anschließend den verknüpften Pull Request #16448 an, da die Arbeit bereits begonnen hat. Bestätige, dass ein enum, das ein interface mit Properties implementiert, den erwarteten fatal error statt einer Diagnose zu einer abstrakten Methode erzeugt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 25/100