From 16d04cbb49220c5de345eb8ed42188ed075d3611 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Fri, 25 Sep 2026 09:56:33 +0700 Subject: [PATCH] A parameter vector that reads a name as a type is to be warned at, the type winning --- TODO.org | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TODO.org b/TODO.org index acf95a88..68f05b7d 100644 --- a/TODO.org +++ b/TODO.org @@ -837,7 +837,8 @@ Already fixed by 3672da2, which blames the arm that is not a compiler temp; the caret is on the last operand and =test/test_flan.ml= asserts its column. Rules out relabelling the else arm, a bool sentinel, and inverting the condition. -** TODO Signature pairing's cold-rebuild edge +** NEXT Signature pairing's cold-rebuild edge +Decided 2026-09-25: the type takes precedence, as today. The warning is at the parameter site: where a name in a parameter vector is read as a program-declared type but could also have been read as a parameter name, the parameter vector gets a warning naming the type and where it is declared. Whether a parameter vector reads as one annotated parameter or two dyn ones depends on what type names exist, so adding a type can silently re-pair an existing signature between compiles. A changed-pairing warning was proposed and