JackosKing (./19) :
Cela s'appelle la programmation par contrat de Bertrand Meyer. [...]
Je suppose que tu voulais compléter ça :
BookeldOr (./11) :
Il peut très bien être sûr de n'appeler cette fonction dans le programme qu'avec des valeurs adéquatement construites
Sinon, je ne vois pas trop où tu veux en venir...
En fait, je répondais à
nEUrOO (./8) :
Flanker: Tes version sont pas equivalentes au code de Pen^2. Tu assumes que tu as forcement une valeur correcte comme entree, ce qui peut ne pas etre le cas.
C'était juste pour dire (de manière certes trollatoire) que parfois on peut être certain d'appeler une fonction avec la bonne valeur partout dans son code et que mettre ces vérifications à la Hoare à la main partout n'est pas forcément nécessaire et parfois ne fait que polluer le code et le rendre illisible avec un tas d'assertions partout.
Par exemple, on peut très bien passer une analyse statique ensuite qui vérifie, pour te faire plaisir avec une sémantique axiomatique, que les valeurs passées sont bien les bonnes, sans pour autant ajouter des tests dynamiques ou des annotations explicites partout.
Ceci dit, la décompilation du
./17 montre que les enums sont bien des types algébriques non extensibles qui sont vérifiés dynamiquement avec une instruction JVM checkcast cf
./14, donc je ne vois toujours pas pourquoi ce default est nécessaire...