Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: DragoRosso - Febbraio 04, 2025, 04:18:55 pm

Titolo: Ignorato il Range check sulla assegnazione
Inserito da: DragoRosso - Febbraio 04, 2025, 04:18:55 pm
Facendo seguito a questo post ( https://forum.lazarus.freepascal.org/index.php/topic,70094.msg545886.html#msg545886 ) vi segnalo che FPC (e Lazarus) riportano un bug sul controllo dell'assegnazione di un valore esterno al SET di un insieme.

Codice: [Seleziona]
    {$mode objfpc}{$H+}{$R+}
    type
      TmyRange = 1..10;
    var
      x: integer;
      Mark: set of TmyRange;
    begin
      Mark := [5,11];   {<- 11 dovrebbe generare un errore di "RANGE CHECK" invece non viene segnalato alcunchè}
      for x in Mark do write(x,' IN Mark');
    end.

In pratica il valore "11" viene accettato, anche se il "for ... in" poi non lo riporta (stampa solo il valore "5"). Quindi dal punto di vista esecuzione non ci sono intoppi, però ce ne sono dal punto di vista della logica.

Occhio quindi ad assegnare un valore interno al range sino a quando non risolveranno il problema.
Titolo: Re:Ignorato il Range check sulla assegnazione
Inserito da: xinyiman - Febbraio 05, 2025, 08:12:13 am
Grazie della segnalazione