From 9f051ec640abcbb4826a4ecc46651219350bafee Mon Sep 17 00:00:00 2001 From: Masahiro Sakai Date: Thu, 10 Aug 2023 10:43:02 +0900 Subject: [PATCH] [haskell-servant][haskell-yesod] fix specialCharReplacements (#16289) HaskellServantCodegen and HaskellYesodServerCodegen modify specialCharReplacements by replacing its keys: backslash ("\\") with "\\\\" and "\"" with "\\\"". It seems that those replacements were for using the keys in string literals in the specialChars table in the generated code. However, modifying the keys causes the substitution of those characters in field names not to work, making generated code syntactically invalid. Since the specialChars table has already been removed, we can safely stop modifying the specialCharReplacements. --- .../codegen/languages/HaskellServantCodegen.java | 6 ------ .../codegen/languages/HaskellYesodServerCodegen.java | 6 ------ 2 files changed, 12 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java index 7b0e72f39990..4b26ba11d110 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java @@ -114,12 +114,6 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf specialCharReplacements.put(">", "GreaterThan"); specialCharReplacements.put("<", "LessThan"); - // backslash and double quote need double the escapement for both Java and Haskell - specialCharReplacements.remove("\\"); - specialCharReplacements.remove("\""); - specialCharReplacements.put("\\\\", "Back_Slash"); - specialCharReplacements.put("\\\"", "Double_Quote"); - // set the output folder here outputFolder = "generated-code/haskell-servant"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java index b49846d51d3e..eb55671fceb3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellYesodServerCodegen.java @@ -108,12 +108,6 @@ public class HaskellYesodServerCodegen extends DefaultCodegen implements Codegen specialCharReplacements.put(">", "GreaterThan"); specialCharReplacements.put("<", "LessThan"); - // backslash and double quote need double the escapement for both Java and Haskell - specialCharReplacements.remove("\\"); - specialCharReplacements.remove("\""); - specialCharReplacements.put("\\\\", "Back_Slash"); - specialCharReplacements.put("\\\"", "Double_Quote"); - outputFolder = "generated-code" + File.separator + "haskell-yesod"; apiTemplateFiles.put("api.mustache", ".hs"); apiTestTemplateFiles.put("api_test.mustache", ".hs");