redhat-developer / redhat-developer/vscode-java
Return null through ternary operator does not give Type mismatch error
未关闭
还没有人认领这个 Issue。
bug
compile
upstream
- 主要语言
- TypeScript
- 星标
- 2.3k
- 派生
- 546
- 平均合并
- 20 小时 1 分钟
- 30 天内合并 PR
- 11
描述
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.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先在 Java 扩展中复现 Code 1、Code 2 和 Code 3,并比较三元形式与 if/else 形式的诊断结果。跟踪 Java 语言支持如何分析返回表达式,然后验证三元情况报告的类型不匹配与其他示例相同。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- compilers, devtools
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 38/100