Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000334OCamlOCaml generalpublic2001-04-11 11:342001-05-02 11:29
Reporteradministrator 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionno change required 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0000334: Test_d'exhaustivité
DescriptionBonjour,

je ne sais pas si c'est un bug ou un changement volontaire du sens du
warning "this pattern-matching is not exhaustive", mais depuis la version
3.01, un pattern matching qui ne provoque pas de warning peut ne pas être
exhaustif:

function s when s = 0 -> ();;

(-> warning en 3.00, rien en 3.01)

Est-ce voulu ?


Je pense qu'un comportement conservatif (certains warnings inutiles, mais
ne pas laisser passer de filtrage partiel sans warning) est préférable,
quitte à changer le texte "this pattern-matching _may_ ...".


--
  Alain Frisch

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0002249)
administrator (administrator)
2001-05-02 11:27

> Bonjour,
>
> je ne sais pas si c'est un bug ou un changement volontaire du sens du
> warning "this pattern-matching is not exhaustive", mais depuis la version
> 3.01, un pattern matching qui ne provoque pas de warning peut ne pas être
> exhaustif:
>
> function s when s = 0 -> ();;
>
> (-> warning en 3.00, rien en 3.01)
>
> Est-ce voulu ?

C'est voulu si on veut. Mais manifestement certains utlisateurs prefe`re
comme c,a. On tombe dans l'imfame proble`me du pattern matching vide.
Tous ceux qui y ont recourt sont sense's savoir ce qu'ils font...
Personnellement je ne m'en sers jamais.


>
> Je pense qu'un comportement conservatif (certains warnings inutiles, mais
> ne pas laisser passer de filtrage partiel sans warning) est préférable,
> quitte à changer le texte "this pattern-matching _may_ ...".
>
Bof, au fond c,a ne change pas grand chose.
(Rassure toi, il reste des warnings inutiles)
Le manuel est clair. En pre'sence de clauses ``when'' il peut se passer
n'importe quoi.

En fait on peut utiliser le truc suivant :
Ne jamais mettre de when sur la dernier`re clause
comportant un motif donne'.
C'est a` dire, adopter un style if .. else if .. else...
Ici
genre

function s wehen s=0 -> ()
| _ -> assert false

Alors la derniere clause (celle qui correspond a` ``else'')
passe dans la verification d'exhaustivite' et tout se passe comme on
s'y attend.

>
> --
> Alain Frisch
>
>
(0002250)
administrator (administrator)
2001-05-02 11:29

Always the same story about empty PM and exhsutiveness.
--Luc

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker