LuaLS / LuaLS/lua-language-server
Generic class instanced in function should return as a concrete type
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ả
### How are you using the lua-language-server?
Visual Studio Code Extension (sumneko.lua)
### Which OS are you using?
Windows
### What is the issue affecting?
Annotations, Hover
### Expected Behaviour
-
### Actual Behaviour
Hovering `strings` in this code below gives the type as `local strings: list<>|{ [integer]: string }`, whereas I expect the type/hover to be `local strings: list`.
```lua
---@class list: {[integer]:T}
---@generic T
---@param class `T`
---@return list
local function new_list(class)
return {}
end
local strings = new_list('string')
```
### Reproduction steps
-
### Additional Notes
_No response_
### Log File
_No response_
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 với trình tái hiện bằng Lua trong issue và kiểm tra đường đi của hover/suy luận kiểu cho việc khởi tạo lớp generic. Tái hiện hover được báo cáo `list<>|{ [integer]: string }` và xác minh rằng kết quả là `list`.
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
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- 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