agent_patch
runs/2026-02-27__21-30-28__gpt-5-3-codex/flux-pr-3535/flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/agent-logs/agent.patch
5038 bytes
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/__tests__/discriminated-unions.test.ts b/app/deno/lib/__tests__/discriminated-unions.test.ts
index bff0cda..1b3e622 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/__tests__/discriminated-unions.test.ts
+++ b/app/deno/lib/__tests__/discriminated-unions.test.ts
@@ -15,6 +15,22 @@ test("valid", () => {
).toEqual({ type: "a", a: "abc" });
});
+test("readonly options", () => {
+ const options = [
+ z.object({ type: z.literal("a"), a: z.string() }),
+ z.object({ type: z.literal("b"), b: z.number() }),
+ ] as const;
+
+ const schema = z.discriminatedUnion("type", options);
+ z.util.assertEqual<
+ z.infer<typeof schema>,
+ { type: "a"; a: string } | { type: "b"; b: number }
+ >(true);
+
+ schema.parse({ type: "a", a: "abc" });
+ schema.parse({ type: "b", b: 123 });
+});
+
test("valid - discriminator value of various primitive types", () => {
const schema = z.discriminatedUnion("type", [
z.object({ type: z.literal("1"), val: z.literal(1) }),
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/types.ts b/app/deno/lib/types.ts
index 19bbdd6..f800fec 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/types.ts
+++ b/app/deno/lib/types.ts
@@ -3165,7 +3165,7 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
export interface ZodDiscriminatedUnionDef<
Discriminator extends string,
- Options extends ZodDiscriminatedUnionOption<string>[] = ZodDiscriminatedUnionOption<string>[]
+ Options extends readonly ZodDiscriminatedUnionOption<string>[] = readonly ZodDiscriminatedUnionOption<string>[]
> extends ZodTypeDef {
discriminator: Discriminator;
options: Options;
@@ -3175,7 +3175,7 @@ export interface ZodDiscriminatedUnionDef<
export class ZodDiscriminatedUnion<
Discriminator extends string,
- Options extends ZodDiscriminatedUnionOption<Discriminator>[]
+ Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]
> extends ZodType<
output<Options[number]>,
ZodDiscriminatedUnionDef<Discriminator, Options>,
@@ -3245,7 +3245,7 @@ export class ZodDiscriminatedUnion<
*/
static create<
Discriminator extends string,
- Types extends [
+ Types extends readonly [
ZodDiscriminatedUnionOption<Discriminator>,
...ZodDiscriminatedUnionOption<Discriminator>[]
]
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/__tests__/discriminated-unions.test.ts b/app/src/__tests__/discriminated-unions.test.ts
index 9d8e7b6..d5c0c00 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/__tests__/discriminated-unions.test.ts
+++ b/app/src/__tests__/discriminated-unions.test.ts
@@ -14,6 +14,22 @@ test("valid", () => {
).toEqual({ type: "a", a: "abc" });
});
+test("readonly options", () => {
+ const options = [
+ z.object({ type: z.literal("a"), a: z.string() }),
+ z.object({ type: z.literal("b"), b: z.number() }),
+ ] as const;
+
+ const schema = z.discriminatedUnion("type", options);
+ z.util.assertEqual<
+ z.infer<typeof schema>,
+ { type: "a"; a: string } | { type: "b"; b: number }
+ >(true);
+
+ schema.parse({ type: "a", a: "abc" });
+ schema.parse({ type: "b", b: 123 });
+});
+
test("valid - discriminator value of various primitive types", () => {
const schema = z.discriminatedUnion("type", [
z.object({ type: z.literal("1"), val: z.literal(1) }),
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/types.ts b/app/src/types.ts
index bbb857a..0535625 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/types.ts
+++ b/app/src/types.ts
@@ -3165,7 +3165,7 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
export interface ZodDiscriminatedUnionDef<
Discriminator extends string,
- Options extends ZodDiscriminatedUnionOption<string>[] = ZodDiscriminatedUnionOption<string>[]
+ Options extends readonly ZodDiscriminatedUnionOption<string>[] = readonly ZodDiscriminatedUnionOption<string>[]
> extends ZodTypeDef {
discriminator: Discriminator;
options: Options;
@@ -3175,7 +3175,7 @@ export interface ZodDiscriminatedUnionDef<
export class ZodDiscriminatedUnion<
Discriminator extends string,
- Options extends ZodDiscriminatedUnionOption<Discriminator>[]
+ Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]
> extends ZodType<
output<Options[number]>,
ZodDiscriminatedUnionDef<Discriminator, Options>,
@@ -3245,7 +3245,7 @@ export class ZodDiscriminatedUnion<
*/
static create<
Discriminator extends string,
- Types extends [
+ Types extends readonly [
ZodDiscriminatedUnionOption<Discriminator>,
...ZodDiscriminatedUnionOption<Discriminator>[]
]