Enums should not be allowed to implement interfaces with properties in 8.4
Đang mở
Bug
Category: Engine
- Ngôn ngữ chính
- C
- Star
- 40.4k
- Fork
- 8.2k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 96
Mô tả
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
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với phần tái hiện PHP enum và interface được nêu trong issue, sau đó kiểm tra pull request #16448 được liên kết vì công việc đã được triển khai. Xác nhận rằng một enum triển khai một interface có properties tạo ra fatal error như mong đợi thay vì chẩn đoán về phương thức trừu tượng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- php
- Lĩnh vực
- compilers
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 25/100