Disable deriving-defaults per file (#8684)

Disabling it per target works nicely for compilation but it gets
annoying in ghci since the warnings are still triggered. We could
disable it everywhere but I think the warning is generally useful. I
tried patching proto3-suite to use DerivingStrategies but that doesn’t
work because haskell-src is dead and doesn’t support it. So for now
adding it to the per-file list seems like the best option.

changelog_begin
changelog_end
This commit is contained in:
Moritz Kiefer 2021-01-29 12:01:55 +01:00 committed by GitHub
parent 218f65ef6c
commit 5d91a25306
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 4 deletions

View File

@ -36,7 +36,6 @@ da_haskell_library(
"//ledger-api/grpc-definitions:google-protobuf-haskellpb-sources",
"//ledger-api/grpc-definitions:google-rpc-haskellpb-sources",
],
compiler_flags = ["-Wno-deriving-defaults"],
hackage_deps = [
"base",
"bytestring",

View File

@ -216,6 +216,8 @@ haskell_cabal_library(
sha256 = "b294ff0fe24c6c256dc8eca1d44c2a9a928b9a1bc70ddce6a1d059499edea119",
strip_prefix = "proto3-suite-0af901f9ef3b9719e08eae4fab8fd700d6c8047a",
urls = ["https://github.com/awakesecurity/proto3-suite/archive/0af901f9ef3b9719e08eae4fab8fd700d6c8047a.tar.gz"],
patches = ["@com_github_digital_asset_daml//bazel_tools:haskell_proto3_suite_deriving_defaults.patch"],
patch_args = ["-p1"],
)
http_archive(

View File

@ -0,0 +1,21 @@
GHC 8.10 enables -Wderiving-defaults as part of -Wall.
Its a useful warning so we want to keep it. However,
proto3-suite generates code that triggers this warning.
Now ideally, we would just switch proto3-suite over to
DerivingStrategies but unfortunately haskell-src, the library
used to generate the Haskell source, does not support that.
So instead, we disable the warning on a per file basis.
The warning only exists in GHC >= 8.10 so we cannot
upstream this atm.
diff --git a/src/Proto3/Suite/DotProto/Generate.hs b/src/Proto3/Suite/DotProto/Generate.hs
index 566b8a9..fae46a4 100644
--- a/src/Proto3/Suite/DotProto/Generate.hs
+++ b/src/Proto3/Suite/DotProto/Generate.hs
@@ -127,6 +127,7 @@ renderHsModuleForDotProto extraInstanceFiles dotProto importCtxt = do
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+ {-# OPTIONS_GHC -Wno-deriving-defaults #-}
-- | Generated by Haskell protocol buffer compiler. DO NOT EDIT!
|]

View File

@ -67,7 +67,6 @@ genrule(
da_haskell_library(
name = "repl_service_haskell_proto",
srcs = [":repl_service_haskell_proto_src"],
compiler_flags = ["-Wno-deriving-defaults"],
hackage_deps = [
"base",
"bytestring",

View File

@ -81,7 +81,6 @@ da_haskell_library(
srcs = [":daml_lf_dev_archive_haskell_proto_src"],
compiler_flags = [
"-O0",
"-Wno-deriving-defaults",
], # disable optimization as this is otherwise way too slow to compile.
hackage_deps = [
"base",

View File

@ -225,7 +225,6 @@ da_haskell_library(
],
compiler_flags = [
"-O0",
"-Wno-deriving-defaults",
],
hackage_deps = [
"base",