LuaLS / LuaLS/lua-language-server
[Feature request] Implicit casts for common conversions
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Lua
- Star
- 4.4k
- Fork
- 442
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
I got some code for parsing command line flags/user inputs that commonly uses patterns like this
---@return string ...
local function strsplit(str, sep) end
local a, b, c = strsplit(userinput, ",")
b = tonumber(b) or 0 -- error: This variable is defined as type `string`. Cannot convert its type to `number`
The fix is to define b as string|number in the declaration, but it's a bit cumbersome, especially if I just want b as a number:
local a,
---@type number|string
b, c = strsplit(userinput, ",")
So it would be nice if common type conversion patterns like this could be recognized automatically and either allow the cast or infer the type as string|number from the beginning.
Edit: See comment below, the implicit cast is already happening, this is really about type inference based on later assignments. Which may or may not be a good idea.
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 bằng cách truy vết hành vi implicit-cast và type-inference hiện có được mô tả trong issue, đặc biệt là cách các phép gán sau đó ảnh hưởng đến một khai báo biến trước đó. Xác định các quy tắc suy luận dự kiến và kiểm tra chúng bằng ví dụ phân tích dòng lệnh; công việc được hoàn tất khi đã thống nhất được hành vi và có các bài kiểm thử bao phủ kiểu được suy luận kết quả.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- lua
- Lĩnh vực
- devtools
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100