1+ (* Copyright (C) 2020 - Authors of BuckleScript
2+ *
3+ * This program is free software: you can redistribute it and/or modify
4+ * it under the terms of the GNU Lesser General Public License as published by
5+ * the Free Software Foundation, either version 3 of the License, or
6+ * (at your option) any later version.
7+ *
8+ * In addition to the permissions granted to you by the LGPL, you may combine
9+ * or link a "work that uses the Library" with a publicly distributed version
10+ * of this file to produce a combined library or application, then distribute
11+ * that combined work under the terms of your choosing, with no requirement
12+ * to comply with the obligations normally placed on you by section 4 of the
13+ * LGPL version 3 (or the corresponding section of a later version of the LGPL
14+ * should you choose to use a later version).
15+ *
16+ * This program is distributed in the hope that it will be useful,
17+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19+ * GNU Lesser General Public License for more details.
20+ *
21+ * You should have received a copy of the GNU Lesser General Public License
22+ * along with this program; if not, write to the Free Software
23+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
24+
25+
26+ let wrap_single_field_record loc lbl_name (lambda : Lambda.lambda ) : Lambda.lambda =
27+ if lbl_name.[0 ] = 'I' then
28+ let arity_s = String. sub lbl_name 1 (String. length lbl_name - 1 ) in
29+ Lprim (
30+ Pccall (Primitive. make ~name: " #fn_mk" ~alloc: true ~native_name: arity_s ~native_repr_args: [Same_as_ocaml_repr ] ~native_repr_res: Same_as_ocaml_repr ), [lambda],loc)
31+ else lambda
0 commit comments