Python: trailing comma in a PEP 695 type parameter list causes a parse error
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 88/100
Hướng nghiên cứu
Bắt đầu trong tsg-python/tsp/grammar.js tại rule type_parameters, sau đó so sánh cách xử lý dấu phẩy của rule này với grammar CPython được liên kết. Được xem là hoàn tất khi Python extractor chấp nhận dấu phẩy ở cuối trong các danh sách tham số kiểu PEP 695 cho các câu lệnh class, def và type, bao gồm cả ví dụ được định dạng đã nêu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description of the issue
The Python extractor (CodeQL CLI 2.27.1) fails to parse a trailing comma after the last type parameter, and the file is dropped from analysis. This applies to class, def and type statements. ruff format and Black add this comma whenever they split a long type parameter list, so formatted code runs into it.
class A[
T: int,
U: str, # Syntax Error here
]:
pass
type_parameters in tsg-python/tsp/grammar.js has no optional trailing comma, while CPython's grammar does (type_param_seq: ','.type_param+ [',']). Adding it fixes the error:
type_parameters: $ => seq(
'[',
commaSep1(field('type_parameter', $._type_parameter)),
+ optional(','),
']'
),
- Ngôn ngữ chính
- CodeQL
- Star
- 10.2k
- Fork
- 2.1k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 144
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc 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.
Issue khác của github/codeql
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
github/codeql#22766 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
false-positive javascript
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
github/codeql#22632 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add AlertSuppression.ql for Rust (inline // codeql[...] suppression)Có thể đã có người làm @cnuss đã nhận 188 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
github/codeql#21637 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
false-positive
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
github/codeql#21076 · 3 bình luận · 3 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 54/100
github/codeql#22770 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của github/codeql
Issue tương tự
-
erdos-status-sync
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
google-deepmind/formal-conjectures#6920 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area-web-js web-libraries
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 4 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
objectionary/eo#9317 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
rubys/roundhouse#571 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
anthropics/buffa#639 ·
Maintainer thường phản hồi trong vòng 3 ngày