File tree Expand file tree Collapse file tree 2 files changed +15
-0
lines changed Expand file tree Collapse file tree 2 files changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -338,6 +338,15 @@ let clflags_attribute_with_int_payload attr ~name clflags_ref =
338
338
| None -> ()
339
339
end
340
340
341
+ let principal_attribute attr =
342
+ clflags_attribute_without_payload attr
343
+ ~name: " principal" Clflags. principal
344
+
345
+ let noprincipal_attribute attr =
346
+ clflags_attribute_without_payload' attr
347
+ ~name: " noprincipal"
348
+ ~f: (fun () -> Clflags. principal := false )
349
+
341
350
let nolabels_attribute attr =
342
351
clflags_attribute_without_payload attr
343
352
~name: " nolabels" Clflags. classic
@@ -377,10 +386,14 @@ let afl_inst_ratio_attribute attr =
377
386
378
387
let parse_standard_interface_attributes attr =
379
388
warning_attribute attr;
389
+ principal_attribute attr;
390
+ noprincipal_attribute attr;
380
391
nolabels_attribute attr
381
392
382
393
let parse_standard_implementation_attributes attr =
383
394
warning_attribute attr;
395
+ principal_attribute attr;
396
+ noprincipal_attribute attr;
384
397
nolabels_attribute attr;
385
398
inline_attribute attr;
386
399
afl_inst_ratio_attribute attr;
Original file line number Diff line number Diff line change @@ -18,6 +18,8 @@ open! Stdlib
18
18
19
19
(* * Operations on objects *)
20
20
21
+ [@@@ ocaml.noprincipal] (* preserve structure sharing in copy (PR#9767) *)
22
+
21
23
val copy : (< .. > as 'a ) -> 'a
22
24
(* * [Oo.copy o] returns a copy of object [o], that is a fresh
23
25
object with the same methods and instance variables as [o]. *)
You can’t perform that action at this time.
0 commit comments