From d36fbdd6c0b02797874ce37924a47056fe384c20 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Mon, 26 Oct 2026 18:30:10 +0000 Subject: [PATCH] Test the evaluation order of a dict spread with children in JSX preserve mode #8747 printed such a spread as separate JSX props with the children last, so a later field was evaluated before them; #8754 fixed it. The plain and preserve builds now record and compare that order. Closes #8757. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01NLAPXPM9xbC6L6jutL4PDo Signed-off-by: Christoph Knittel --- .../jsx_preserve_semantics/cases/Order.res | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/build_tests/jsx_preserve_semantics/cases/Order.res b/tests/build_tests/jsx_preserve_semantics/cases/Order.res index 0caad33ddb..44d16e45f7 100644 --- a/tests/build_tests/jsx_preserve_semantics/cases/Order.res +++ b/tests/build_tests/jsx_preserve_semantics/cases/Order.res @@ -32,3 +32,14 @@ let copySpreadOrder = log->Array.copy let props = let propsOrder = log->Array.copy + +module LoggedDict = { + @val external make: React.component> = "LoggedComp" +} + +// A dict spread is one props object: its children are evaluated before the +// fields after them +let dictBase: dict = dict{} +let dictChildren = + +let dictChildrenOrder = log->Array.copy