Skip to content

Commit 2a6dee3

Browse files
committed
refactor(formula,spec): name the refusal type parameters so the vocabulary gate does not read them as code constants
`check:dispatcher-error-vocabulary`'s object-literal constant shape matches `code: K;` in a type literal, so a single-letter type parameter reads as an unresolvable SCREAMING code constant. `Code` / `Codes` say the same thing and stay out of that grammar. Claude-Session: https://claude.ai/code/session_01QcAS3qiYYZNezaxZxaUdMV Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 72b47b1 commit 2a6dee3

3 files changed

Lines changed: 8 additions & 8 deletions

File tree

‎packages/formula/src/expression-refusal.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,11 @@ export type ExpressionRefusalCode = keyof ExpressionRefusalParams;
139139

140140
/**
141141
* One refusal's `code` and `params`, correlated: narrowing on `code` narrows
142-
* `params`. `C` restricts it to the codes one producer emits.
142+
* `params`. `Codes` restricts it to the codes one producer emits.
143143
*/
144-
export type ExpressionRefusal<C extends ExpressionRefusalCode = ExpressionRefusalCode> = {
145-
[K in C]: { readonly code: K; readonly params: ExpressionRefusalParams[K] };
146-
}[C];
144+
export type ExpressionRefusal<Codes extends ExpressionRefusalCode = ExpressionRefusalCode> = {
145+
[Code in Codes]: { readonly code: Code; readonly params: ExpressionRefusalParams[Code] };
146+
}[Codes];
147147

148148
/** The codes `collectCelRootIdentifiers` emits. */
149149
export type CelRootsRefusalCode = 'empty-expression' | 'cel-parse-failed';

‎packages/formula/src/validate.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,9 @@ export type ExprValidationError = {
192192
* between `code` and `params` is asserted; every call site is checked against
193193
* {@link ExpressionRefusalParams} for its own code.
194194
*/
195-
function refusal<C extends ExprValidationCode>(
196-
code: C,
197-
params: ExpressionRefusalParams[C],
195+
function refusal<Code extends ExprValidationCode>(
196+
code: Code,
197+
params: ExpressionRefusalParams[Code],
198198
source: string,
199199
message: string,
200200
): ExprValidationError {

‎packages/spec/src/automation/flow-node-expression-paths.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ export type PredicateSlotRefusalCode = keyof PredicateSlotRefusalParams;
494494
* `params` — narrowing on `code` narrows `params`.
495495
*/
496496
export type PredicateSlotRefusal = { message: string; source: string } & {
497-
[C in PredicateSlotRefusalCode]: { readonly code: C; readonly params: PredicateSlotRefusalParams[C] };
497+
[Code in PredicateSlotRefusalCode]: { readonly code: Code; readonly params: PredicateSlotRefusalParams[Code] };
498498
}[PredicateSlotRefusalCode];
499499

500500
/**

0 commit comments

Comments
 (0)