redhat-developer / redhat-developer/vscode-java
Return null through ternary operator does not give Type mismatch error
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- TypeScript
- Star
- 2.3k
- Fork
- 546
- Merge trung bình
- 20 giờ 1 phút
- Pull request đã merge (30 ngày)
- 11
Mô tả
Returning null through a ternary operator does not give Type mismatch error. It should.
Code 1:
public double getValue() {
return null;
}
null is error-underlined with the error [Java] Type mismatch: cannot convert from null to double.

Code 2:
public double getValue() {
return value == null ? null : Double.parseDouble(value);
}
No errors shown on the returned null.

Code 3:
public double getValue() {
if (value == null)
return null;
else
return Double.parseDouble(value);
}
Same error:

Environment
- Operating System: Windows 10 x64
- JDK version: 8
- Visual Studio Code version: 1.20.0
- Java extension version: 0.18.1
Steps To Reproduce
- Make code shown.
- Look for error.
Current Result
Code 1 & 3 shows error. Code 2 doesn't.
Expected Result
All Code blocks should show error.
Additional Information
Please let me know if you need any logs or anything.
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 tái hiện Code 1, Code 2 và Code 3 trong tiện ích mở rộng Java, rồi so sánh các chẩn đoán cho dạng toán tử ba ngôi và dạng if/else. Theo dõi cách phần hỗ trợ ngôn ngữ Java phân tích các biểu thức return, sau đó xác minh rằng trường hợp toán tử ba ngôi báo cáo cùng một lỗi không khớp kiểu như các ví dụ khác.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- compilers, devtools
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 38/100