| Anonymous | Login | Signup for a new account | 2013-06-19 23:50 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||||
| 0001952 | OCaml | OCaml general | public | 2003-12-01 15:23 | 2004-05-28 05:01 | ||||||
| Reporter | administrator | ||||||||||
| Assigned To | |||||||||||
| Priority | normal | Severity | feature | Reproducibility | always | ||||||
| Status | acknowledged | Resolution | open | ||||||||
| Platform | OS | OS Version | |||||||||
| Product Version | |||||||||||
| Target Version | Fixed in Version | ||||||||||
| Summary | 0001952: référence et polymorphisme | ||||||||||
| Description | Full_Name: Julien Signoles Version: 3.06 et 3.07 OS: linux Submission from: newwww.lri.fr (129.175.15.10) Bonjour, Le programme ci-dessous ne type pas alors qu'il devrait... ===== let x = ref 0 let y = ref true let f a = x := a let g a = y := a (* version "typage explicite + let" : ok *) let h1 : ('a -> unit) -> 'a -> unit = fun f x -> f x;; h1 f 0;; h1 g true;; let _ = (* version "typage implicite + let_in" : ok *) let h1 f x = f x in h1 f 0; h1 g true; (* version "typage explicite + let_in" : KO *) let h2 : ('a -> unit) -> 'a -> unit = fun f x -> f x in h2 f 0; h2 g (* <-- erreur de typage *) true ===== Julien Signoles | ||||||||||
| Tags | No tags attached. | ||||||||||
| Attached Files | |||||||||||
Notes |
|
|
(0000192) administrator (administrator) 2004-05-28 05:01 |
> Le programme ci-dessous ne type pas alors qu'il devrait... > > ===== > let x = ref 0 > let y = ref true > > let f a = x := a > let g a = y := a > > let _ = > (* version "typage explicite + let_in" : KO *) > let h2 : ('a -> unit) -> 'a -> unit = fun f x -> f x in > h2 f 0; > h2 g (* <-- erreur de typage *) true Ce n'est pas a proprement parler un bug, puisque c'est le comportement prevu du compilateur (mais je ne suis pas sur qu'il soit clairement documente'). Toutes les variables de types apparaissant dans des annotations sont considerees comme liees au niveau le plus exterieur. Elles ne peuvent donc etre rendues polymorphes que pour les definitions a` toplevel. Il est parfois question de changer cette semantique... je reclasse donc ca en feature-wish. Jacques Garrigue |
|
(0000193) administrator (administrator) 2004-05-28 05:01 |
Question de liaison des variables dans les contraintes de types ? -DD Oui, mais ce n'est pas un bug -JG |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2005-11-18 10:13 | administrator | New Issue | |
| Copyright © 2000 - 2011 MantisBT Group |