gpt4 book ai didi

haskell - 在 Haskell 中构建时检测未使用的函数

转载 作者:行者123 更新时间:2023-12-03 23:47:00 25 4
gpt4 key购买 nike

每当我编写一个新函数而忘记在任何地方使用它时,我都试图让 GHC 警告我。我在我的 Main.hs 中添加了以下函数:

unused :: () -> ()
unused _ = ()

当然没有用过。

我的 *.cabal 文件中有以下内容:

 ghc-options: 
-W
-Wall
-Werror
-Wcompat
-Wincomplete-uni-patterns
-Wincomplete-record-updates
-Wredundant-constraints
-Wpartial-fields
-Wunused-binds

我特别添加了 -Wunused-binds 以尝试强制编译器对此失败,但它不会报告有关未使用函数的任何警告。

知道我在这里做错了什么吗?

编辑

为了给出一个更大的图景,这里是主文件的开头:


{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}

module Main where

import Apecs
import Linear ( V2(..) )
import Control.Monad
import Control.Monad.IO.Class
import Control.Monad.Catch
import qualified System.Terminal as T
import System.Terminal.Internal
import qualified Data.Map as M
import System.Random

最佳答案

仅从模块中导出主函数解决了这个问题:

module Main(main) where

编辑

仅供引用,这个标志已经包含在 -Wall 中,所以在 cabal 中有这个就足够了:

  ghc-options: 
-Wall
-Werror

关于haskell - 在 Haskell 中构建时检测未使用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62126216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com