From 53b17db2e4639efe7450d74b13018d379dd85af6 Mon Sep 17 00:00:00 2001 From: utherbit Date: Tue, 26 Dec 2023 13:34:31 +0300 Subject: [PATCH 1/5] https://github.com/ogen-go/ogen/issues/1146 bag fix. When generated in, allOf Ref will not change --- gen/schema_gen_sum.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gen/schema_gen_sum.go b/gen/schema_gen_sum.go index 083952c26..a5dbaa8fd 100644 --- a/gen/schema_gen_sum.go +++ b/gen/schema_gen_sum.go @@ -465,10 +465,9 @@ func (g *schemaGen) allOf(name string, schema *jsonschema.Schema) (*ir.Type, err return nil, err } - // Do not modify reference fields, as they may still refer to the original schema. - if mergedSchema.Ref.IsZero() { - mergedSchema.Ref = schema.Ref - } + // The reference field must not change + mergedSchema.Ref = schema.Ref + return g.generate(name, mergedSchema, false) } From 981285c038d6838c90bda9aa8f006f61b1ed95b0 Mon Sep 17 00:00:00 2001 From: utherbit Date: Wed, 27 Dec 2023 10:47:38 +0300 Subject: [PATCH 2/5] Revert "https://github.com/ogen-go/ogen/issues/1146" This reverts commit 53b17db2e4639efe7450d74b13018d379dd85af6. --- gen/schema_gen_sum.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gen/schema_gen_sum.go b/gen/schema_gen_sum.go index a5dbaa8fd..083952c26 100644 --- a/gen/schema_gen_sum.go +++ b/gen/schema_gen_sum.go @@ -465,9 +465,10 @@ func (g *schemaGen) allOf(name string, schema *jsonschema.Schema) (*ir.Type, err return nil, err } - // The reference field must not change - mergedSchema.Ref = schema.Ref - + // Do not modify reference fields, as they may still refer to the original schema. + if mergedSchema.Ref.IsZero() { + mergedSchema.Ref = schema.Ref + } return g.generate(name, mergedSchema, false) } From 359eada97164072618545379953dfa1e08da0db7 Mon Sep 17 00:00:00 2001 From: utherbit Date: Wed, 27 Dec 2023 10:48:37 +0300 Subject: [PATCH 3/5] fix(gen): detect conflict when generic is not of the same base type fixes #1146 --- gen/schema_gen_sum.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gen/schema_gen_sum.go b/gen/schema_gen_sum.go index 083952c26..a5dbaa8fd 100644 --- a/gen/schema_gen_sum.go +++ b/gen/schema_gen_sum.go @@ -465,10 +465,9 @@ func (g *schemaGen) allOf(name string, schema *jsonschema.Schema) (*ir.Type, err return nil, err } - // Do not modify reference fields, as they may still refer to the original schema. - if mergedSchema.Ref.IsZero() { - mergedSchema.Ref = schema.Ref - } + // The reference field must not change + mergedSchema.Ref = schema.Ref + return g.generate(name, mergedSchema, false) } From 59ac09f094bed59b006a7439518f8edfc6c7a386 Mon Sep 17 00:00:00 2001 From: utherbit Date: Wed, 27 Dec 2023 10:50:21 +0300 Subject: [PATCH 4/5] Revert "fix(gen): detect conflict when generic is not of the same base type" This reverts commit 359eada97164072618545379953dfa1e08da0db7. --- gen/schema_gen_sum.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gen/schema_gen_sum.go b/gen/schema_gen_sum.go index a5dbaa8fd..083952c26 100644 --- a/gen/schema_gen_sum.go +++ b/gen/schema_gen_sum.go @@ -465,9 +465,10 @@ func (g *schemaGen) allOf(name string, schema *jsonschema.Schema) (*ir.Type, err return nil, err } - // The reference field must not change - mergedSchema.Ref = schema.Ref - + // Do not modify reference fields, as they may still refer to the original schema. + if mergedSchema.Ref.IsZero() { + mergedSchema.Ref = schema.Ref + } return g.generate(name, mergedSchema, false) } From 28bd97e4aead58e01e4228bcc241d7734fc19481 Mon Sep 17 00:00:00 2001 From: utherbit Date: Wed, 27 Dec 2023 10:50:59 +0300 Subject: [PATCH 5/5] fix(gen): detect conflict when generic is not of the same base type --- gen/schema_gen_sum.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gen/schema_gen_sum.go b/gen/schema_gen_sum.go index 083952c26..a5dbaa8fd 100644 --- a/gen/schema_gen_sum.go +++ b/gen/schema_gen_sum.go @@ -465,10 +465,9 @@ func (g *schemaGen) allOf(name string, schema *jsonschema.Schema) (*ir.Type, err return nil, err } - // Do not modify reference fields, as they may still refer to the original schema. - if mergedSchema.Ref.IsZero() { - mergedSchema.Ref = schema.Ref - } + // The reference field must not change + mergedSchema.Ref = schema.Ref + return g.generate(name, mergedSchema, false) }