From 349158b155bf716b37f7bda69838f150511fb87c Mon Sep 17 00:00:00 2001 From: Berk Dilek Date: Mon, 5 Jan 2026 18:23:40 +0300 Subject: [PATCH] [Core] Fix isDouble flag not being set for 'type: number' without format When a schema has 'type: number' without an explicit 'format: double', the isDouble flag was not being set even though the dataType correctly resolves to Double. This caused Swift6 (and potentially other generators) to incorrectly add ParameterConvertible conformance to number enums. The fix ensures isDouble is set to true for all number types that are not explicitly float, matching the behavior of the type mapping. Affected methods: - updateModelForNumber (for standalone enum models) - updatePropertyForNumber (for inline enum properties) --- .../java/org/openapitools/codegen/DefaultCodegen.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index 2002667a31ce..93325b2bad63 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -3002,7 +3002,9 @@ protected void updateModelForNumber(CodegenModel model, Schema schema) { model.isNumeric = Boolean.TRUE; if (ModelUtils.isFloatSchema(schema)) { // float model.isFloat = Boolean.TRUE; - } else if (ModelUtils.isDoubleSchema(schema)) { // double + } else { + // Set isDouble for explicit "format: double" OR when no format is specified + // (since "type: number" without format defaults to Double in most languages) model.isDouble = Boolean.TRUE; } } @@ -3886,7 +3888,9 @@ protected void updatePropertyForNumber(CodegenProperty property, Schema p) { property.isNumeric = Boolean.TRUE; if (ModelUtils.isFloatSchema(p)) { // float property.isFloat = Boolean.TRUE; - } else if (ModelUtils.isDoubleSchema(p)) { // double + } else { + // Set isDouble for explicit "format: double" OR when no format is specified + // (since "type: number" without format defaults to Double in most languages) property.isDouble = Boolean.TRUE; } }