Prism::Translation::Parser raises NoMethodError for a method with a &nil parameter and a body
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
- 82/100
Hướng nghiên cứu
Bắt đầu trong lib/prism/translation/parser/compiler.rb và kiểm tra find_forwarding, nơi issue cho biết node.block.name được gọi cho các tham số block. So sánh các kiểu node tham số của &nil và tham số block có tên, sau đó chạy các bài kiểm thử dịch parser bao quát định nghĩa phương thức. Công việc hoàn tất khi phân tích một phương thức có thân không rỗng và tham số &nil không còn gây ra NoMethodError, đồng thời các trường hợp block và lambda hiện có vẫn hoạt động.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
With Prism 2.1.0 the parser translation fails on a method that has a &nil parameter and a non-empty body:
require "prism"
require "prism/translation/parser"
buffer = Parser::Source::Buffer.new("test.rb", source: "def foo(&nil); bar; end")
Prism::Translation::Parser41.new.parse(buffer)
# => undefined method 'name' for an instance of Prism::NoBlockParameterNode (NoMethodError)
It works when the body is empty, and for blocks and lambdas (foo { |&nil| bar }).
find_forwarding in lib/prism/translation/parser/compiler.rb calls node.block.name for any block parameter, and NoBlockParameterNode has no name. Checking for a BlockParameterNode there fixes it. Happy to send a PR.
- Ngôn ngữ chính
- C
- Star
- 1k
- Fork
- 202
- Merge trung bình
- 5 giờ 55 phút
- Pull request đã merge (30 ngày)
- 85
Chuẩn bị môi trường
- 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 ruby/prism
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Heredoc and outer-context recovery at recursion depth / stack budget limit causes location underflowĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 43/100
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 45/100
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 1/100
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 48/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Memory leak: "Add to Playlist" (`CMD_EVENT_ADD_TO_PLAYLIST`) never frees the playlist it loadsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Signed/unsigned mix in the EOCD backward scan rejects valid archives with a 65535-byte commentĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
area: recompiler area: runtime kind: bug preview-effort: small priority: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
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 78/100
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