Rule ballerina:8 not reported when the constant is on the left-hand side of the comparison

Aperta
#87 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java
Ambito
tooling

Direzione di ricerca

Riproduci il problema con l’esempio main.bal fornito ed esegui bal scan, quindi traccia l’implementazione della regola integrata ballerina:8. Confronta la gestione di x < int:MIN_VALUE con il caso invertito int:MIN_VALUE > x. Il lavoro è completato quando bal scan segnala ballerina:8 per entrambe le espressioni semanticamente equivalenti.

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

Descrizione

Area/Rules Type/Bug
Description

The built-in rule ballerina:8 ("This operation always evaluates to false") correctly flags comparisons like x < int:MIN_VALUE, but fails to flag the semantically equivalent expression with the operands flipped, e.g. int:MIN_VALUE > x.

Steps to Reproduce
  1. Create a Ballerina project with the following main.bal:
import ballerina/io;

public function main() {
    int x = -100;
    boolean result;

    result = int:MIN_VALUE > x;

    io:println(result);
}
  1. Run bal scan.

Expected behavior

ballerina:8 should be reported, since int:MIN_VALUE > x always evaluates to false for any int value of x — exactly like x < int:MIN_VALUE, which is correctly flagged:

result = x < int:MIN_VALUE;  // correctly reported as ballerina:8
result = int:MIN_VALUE > x;  // not reported (this issue)

Actual behavior

bal scan reports no issues:

Running Scans
[]
Version

0.11.0

Environment Details (with versions)

No response

Lingua principale
Java
Stelle
15
Fork
12
Merge medio
2g 13h
PR unite (30g)
16

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna 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.

Altre issue di ballerina-platform/static-code-analysis-tool

Tutte le issue di ballerina-platform/static-code-analysis-tool

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.