You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 6037 Reporter:@bobzhang Assigned to:@alainfrisch Status: closed (set by @xavierleroy on 2015-12-11T18:19:32Z) Resolution: won't fix Priority: normal Severity: minor Version: 4.01.0+dev Category: ~DO NOT USE (was: OCaml general)
Bug description
I found that the trunk changed Pexp_open
----- old
Pexp_open of Longident.t loc * expression
----- new
Pexp_open of override_flag * Longident.t loc * expression
How about adding a new constructor instead
Pexp_open_bang of Longident.t loc * expression
The main benefit is to avoid unnecessary breaking other compiler dependent tools?
Thanks
The text was updated successfully, but these errors were encountered:
If we had followed this approach to make the Parsetree backward-compatible for previous evolutions of the Parsetree, we would have ended up already with a mess (many duplicated constructors, for no good conceptual reason). Not even mentioning the recent changes introduced with the "bin-annot" branch (which changes most constructors) and the forthcoming "extension_points" (idem). Tools which use directly the Parsetree or other internal modules of the compiler should be prepared for such changes.
For the specific case you cite, I see it as a good thing that tools matching on the Parsetree need to be adapted explicitly. The author of these tools need to decide whether the new form should also be recognized or not where previously the Pexp_open constructor was used. And adapting the code is rather trivial anyway.
Original bug ID: 6037
Reporter: @bobzhang
Assigned to: @alainfrisch
Status: closed (set by @xavierleroy on 2015-12-11T18:19:32Z)
Resolution: won't fix
Priority: normal
Severity: minor
Version: 4.01.0+dev
Category: ~DO NOT USE (was: OCaml general)
Bug description
I found that the trunk changed Pexp_open
----- old
Pexp_open of Longident.t loc * expression
----- new
Pexp_open of override_flag * Longident.t loc * expression
How about adding a new constructor instead
Pexp_open_bang of Longident.t loc * expression
The main benefit is to avoid unnecessary breaking other compiler dependent tools?
Thanks
The text was updated successfully, but these errors were encountered: