Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions jscomp/ml/typecore.ml
Original file line number Diff line number Diff line change
Expand Up @@ -2169,6 +2169,7 @@ and type_expect_ ?in_function ?(recarg=Rejected) env sexp ty_expected =
| [], Some (representation) when lid_sexp_list = [] ->
let optional_labels = match representation with
| Record_optional_labels optional_labels -> optional_labels
| Record_inlined {optional_labels} -> optional_labels
| _ -> [] in
let filter_missing (ld : Types.label_declaration) =
let name = Ident.name ld.ld_id in
Expand Down
8 changes: 8 additions & 0 deletions jscomp/test/record_regression.js
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,12 @@ var h = newrecord$2;

var h10 = newrecord$3;

var ir4 = /* V0 */{
x: 3
};

var ir5 = /* V0 */{};

exports.f1 = f1;
exports.f2 = f2;
exports.f3 = f3;
Expand All @@ -280,4 +286,6 @@ exports.pm2 = pm2;
exports.inlinedRecord = inlinedRecord;
exports.pm3 = pm3;
exports.pm4 = pm4;
exports.ir4 = ir4;
exports.ir5 = ir5;
/* Not a pure module */
4 changes: 4 additions & 0 deletions jscomp/test/record_regression.res
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,7 @@ let inlinedRecord = ir =>
}
let pm3 = inlinedRecord(ir2)
let pm4 = inlinedRecord(ir3)

type inlinedOptional2 = V0({x?: int})
let ir4 = V0({x: 3})
let ir5 = V0({})