redhat-developer / redhat-developer/vscode-java

Editor erroneously reports warning in conditional operator

Aperta
#821 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug diagnostics upstream
Lingua principale
TypeScript
Stelle
2.3k
Fork
546
Merge medio
20h 1m
PR unite (30g)
11

Descrizione

Erroneous warnings are reported in the editor in conditional operators.

Environment
  • Operating System: Windows 10 Pro
  • JDK version: OpenJDK 11.0.1
  • Visual Studio Code version: 1.30.1
  • Java extension version: 0.40.0
Steps To Reproduce

Write code like the following:

SpeedController motor;
if (RobotMap.isCompetitionRobot)
{
	motor = new WPI_TalonSRX(RobotMap.liftMotorCanDeviceId);
}
else
{
	motor = new Spark(RobotMap.centerLegMotorPwmChannel);
}
		
motor = RobotMap.isCompetitionRobot
	? new WPI_TalonSRX(RobotMap.liftMotorCanDeviceId)
	: new Spark(RobotMap.centerLegMotorPwmChannel);

where the class Spark extends a class that implements AutoCloseable.

Current Result

No warnings are reported in the if statement. However, the warning:

Resource leak: '<unassigned Closeable value>' is never closed

is reported for the code:

new Spark(RobotMap.centerLegMotorPwmChannel)

in the conditional operator.

Expected Result

No warnings should be reported at all.

Additional Informations

None.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo l'avviso con l'esempio dell'operatore condizionale nell'issue, utilizzando, quando possibile, le versioni indicate di Windows, JDK, VS Code e Java extension. Traccia l'analisi delle perdite di risorse di Java extension per le espressioni condizionali. Il lavoro è completato quando l'espressione condizionale non produce alcun avviso errato, mentre il comportamento dell'istruzione if esistente rimane invariato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.