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: 7491 Reporter:@gasche Assigned to:@gasche Status: resolved (set by @gasche on 2017-02-22T15:42:28Z) Resolution: suspended Priority: low Severity: feature Target version: undecided Category: ~DO NOT USE (was: OCaml general) Monitored by:@yallop@hcarty
Bug description
Deep record field replacement extends the record-replacement construction { r with f1 = e1; f2 = e2 } to support nested field accesses { r with p1 = e1; p2 = e2 }, where the ps are field paths (f.g.h). For example
{ r with f.g = e1; f.h = e2; i = e3 }
Conflicting assignments should be rejected statically. Two paths p1, p2 are in conflict when one is a prefix of the other (in particular if they are equal).
There an uncertainty on whether there should be a specified evaluation order on the values; the implementation should probably be consistent with the behavior of the non-extended construction.
with an unsatisfying implementation and some uncertainties about the specification. Alain Frisch pointed out that Lexifi's dialect used to have this extension, and that he would be interested in having it again. See the discussion in #291: the general feedback on the feature is positive, but it was pointed out that a robust implementation would require playing with the record-typechecking code, and is expected to be difficult.
The text was updated successfully, but these errors were encountered:
Following the consensus in #291, I am marking this issue as "suspended", which means that it is not a priority but people that would be able to propose a satisfying implementation should feel free to ask to reopen it.
Original bug ID: 7491
Reporter: @gasche
Assigned to: @gasche
Status: resolved (set by @gasche on 2017-02-22T15:42:28Z)
Resolution: suspended
Priority: low
Severity: feature
Target version: undecided
Category: ~DO NOT USE (was: OCaml general)
Monitored by: @yallop @hcarty
Bug description
Deep record field replacement extends the record-replacement construction { r with f1 = e1; f2 = e2 } to support nested field accesses { r with p1 = e1; p2 = e2 }, where the ps are field paths (f.g.h). For example
{ r with f.g = e1; f.h = e2; i = e3 }
Conflicting assignments should be rejected statically. Two paths p1, p2 are in conflict when one is a prefix of the other (in particular if they are equal).
There an uncertainty on whether there should be a specified evaluation order on the values; the implementation should probably be consistent with the behavior of the non-extended construction.
Additional information
This feature was proposed by Romain Bardou in
#291
with an unsatisfying implementation and some uncertainties about the specification. Alain Frisch pointed out that Lexifi's dialect used to have this extension, and that he would be interested in having it again. See the discussion in #291: the general feedback on the feature is positive, but it was pointed out that a robust implementation would require playing with the record-typechecking code, and is expected to be difficult.
The text was updated successfully, but these errors were encountered: