`missing-super-call` - false negative when dataclass extends class with constructor

Đang mở
#4,899 0 bình luận 2 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, rust
Lĩnh vực
devtools

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện ví dụ về kế thừa dataclass trong issue và lần theo điểm bắt đầu của chẩn đoán missing-super-call. Điều tra cách các constructor dataclass được sinh ra được phân tích khi một lớp cơ sở định nghĩa __init__; hoàn tất khi ví dụ báo cáo lời gọi super bị thiếu mà không tạo ra false positive.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

typechecking
Describe the Bug
from dataclasses import dataclass


class Foo:
    def __init__(self) -> None:
        self.foo: int = 1


@dataclass
class Bar(Foo): ...


Bar().foo # runtime crash

note that pyright's reportMissingSuperCall doesn't catch this either

Sandbox Link

https://pyrefly.org/sandbox/?project=v2.w1tk4sv2oIiA5Si3_HxcuQln9kkD6gFGYAnQV4YQszCzt1NikQbQbE0rBT09PYgikJAmSLOCskJRaV5JZm6qQnJRYnEGOEiIihATUPgVFKUWp4Isj1ECxmsM_kACAA

(Only applicable for extension issues) IDE Information

No response

Ngôn ngữ chính
Rust
Star
7.2k
Fork
578
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của facebook/pyrefly

Tất cả issue của facebook/pyrefly

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.