Miscompilation of `makeFunc()()`
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 48/100
Hướng nghiên cứu
Start by locating the compiler code that emits PCode for function calls and constructor expressions; the issue gives examples for makeFunc()() and new (makeClass())(). Compile those examples and compare the output with the expected sequences in the issue. Done means both cases emit the shown Push undefined before CallMethod or NewMethod, followed by Pop.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
This snippet:
makeFunc()();
is compiled as:
Push 0, 0, "makeFunc"
CallFunction
CallFunction // <-- wrong
Pop
which isn't correct; CallFunction expects the name of the function to call, not the function itself, so the PCode should instead be:
Push 0, 0, "makeFunc"
CallFunction
Push undefined // or equivalently, Push ""
CallMethod
Pop
EDIT: A similar issue exists for new (makeClass())()
// Rascal PCode
Push 0, 0, "makeClass"
CallFunction
NewMethod // <-- wrong
// also, missing Pop?
// Expected PCode
Push 0, 0, "makeClass"
CallFunction
Push undefined // or equivalently, Push ""
NewMethod
Pop
- Ngôn ngữ chính
- Rust
- Star
- 22
- Fork
- 2
- 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
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
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 Dinnerbone/Rascal
-
`swf` upgrade to 0.4.0Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Dinnerbone/Rascal#91 · 2 reaction ·
-
__bytecode__ support?Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
Dinnerbone/Rascal#88 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
Dinnerbone/Rascal#87 ·
-
Cannot have comments in `@PCode`Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
Dinnerbone/Rascal#76 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
Dinnerbone/Rascal#1 ·
Tất cả issue của Dinnerbone/Rascal
Issue tương tự
-
multiple issues priority: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
storytold/pdfcraft#6469 · 1 bình luận ·
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 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
parity priority: low ui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
storytold/photocraft#11680 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
triage/needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
praxis-proxy/grid#564 ·
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 66/100
ScoopInstaller/Extras#19275 ·
Maintainer thường phản hồi trong vòng 1 ngày