redhat-developer / redhat-developer/vscode-java

Generified method call shows "cannot convert from Object to boolean" error

オープン
#4,211 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug upstream
主要言語
TypeScript
スター
2.3k
フォーク
546
平均マージ
20時間 1分
マージ済み PR(30日)
11

説明

Extracted this issue from https://github.com/redhat-developer/vscode-java/issues/3830#issuecomment-2519729457, from @sworthiness

Error:

Type mismatch: cannot convert from Object to boolean Java(16777233)

Environment:

(VS Codium - SSH remote development)

  • Version: 1.95.3
  • Release: 24321
  • Commit: dc5a551c256719475d2d0959270e3836c9bbb632
  • Date: 2024-11-16T09:16:49.983Z
  • Electron: 32.2.5
  • ElectronBuildId: undefined
  • Chromium: 128.0.6613.186
  • Node.js: 20.18.0
  • V8: 12.8.374.38-electron.0
  • OS: Windows_NT x64 10.0.19045
  • JDK: 17
Steps to reproduce
public class Test {
  public <T> T someMethod() {
    return (T) Boolean.TRUE;
  }

  public void someOtherMethod() {
    if (this.someMethod()) { // Type mismatch: cannot convert from Object to boolean Java(16777233)
    }
  }
}
Current Result

The following compilation error is shown in vs-codium:
Type mismatch: cannot convert from Object to boolean Java(16777233)
The error is not seen if the result of this.someMethod() is stored in a Boolean var first

Expected Result

No compilation error should be seen here

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

JDK 17 を使用して VS Codium で Java スニペットを再現し、ジェネリックメソッド呼び出しに対して生成される診断を調査します。if 条件内で someMethod() を直接使用しても変換エラーが報告されなくなり、示されている再現例が引き続き回帰チェックでカバーされていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。