Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

manque de verifications dans les .mli #4974

Closed
vicuna opened this Issue Feb 8, 2010 · 2 comments

Comments

Projects
None yet
1 participant
@vicuna
Copy link
Collaborator

vicuna commented Feb 8, 2010

Original bug ID: 4974
Reporter: @damiendoligez
Status: closed (set by @garrigue on 2010-12-13T12:09:17Z)
Resolution: fixed
Priority: normal
Severity: minor
Version: 3.11.2
Fixed in version: 3.12.0
Category: ~DO NOT USE (was: OCaml general)
Related to: #6252 #4971 #5037 #5061
Monitored by: "Julien Signoles" @Chris00

Bug description

Le compilateur accepte des declarations redondantes (et meme contradictoires) dans les .mli:

val x : int -> int;;
val x : int;;

Evidemment, une telle signature n'est pas satisfiable, donc il vaudrait mieux signaler une
erreur. Le probleme se pose surtout si les deux types sont les memes, ce qui peut arriver
en cas de bug dans un copier-coller.

Voir le #4971 pour des exemples illustrant ce probleme. Pierre a aussi eu le cas dans
format.mli.

@vicuna

This comment has been minimized.

Copy link
Collaborator Author

vicuna commented Feb 9, 2010

Comment author: Julien Signoles

Voir aussi la vieille fiche #1441 qui signalait un problème similaire avec les "module type".

@vicuna

This comment has been minimized.

Copy link
Collaborator Author

vicuna commented Dec 13, 2010

Comment author: @garrigue

Depuis 3.12.0, ce type de signature est devenu satisfiable, car on ne garde que la
dernière déclaration (comme on le ferait dans un .ml).
Je pense que ça résoud le problème, même si certains trouve que ce comportement
est laxiste. Il y a des applications concrètes quand on le combine avec include: on
peut maintenant hériter d'une signature tout en modifiant des définitions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.