GHC-mod có phải sử dụng tên đầy đủ cho các loại không?


143

Tôi đang cố gắng sử dụng ghc-modplugin vim để kiểm tra kiểu / cú pháp, v.v. Tuy nhiên, tôi thấy rằng ghc-modluôn sử dụng đầy đủ các đường dẫn của các loại trong thông báo lỗi, ví dụ:

test.hs|71 col 13 error| Couldn't match type Data.Text.Internal.Text                                                                                   
||                with ‘[GHC.Types.Char]’
|| Expected type: containers-0.5.6.2:Data.Map.Base.Map
||                  [GHC.Types.Char]
||                  ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer,
||                     integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)],
||                   containers-0.5.6.2:Data.Set.Base.Set
||                     integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)
||   Actual type: containers-0.5.6.2:Data.Map.Base.Map
||                  Data.Text.Internal.Text
||                  ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer,
||                     integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)],
||                   containers-0.5.6.2:Data.Set.Base.Set
||                     integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)
|| In the second argument of containers-0.5.6.2:Data.Map.Base.map’, namely
||   zippedMap
|| In the second argument of ‘(GHC.Base.$)’, namely
||   containers-0.5.6.2:Data.Map.Base.map
...

Điều này làm mờ màn hình và rất khó để tôi tìm ra lỗi sai. Để so sánh, đây là thông báo lỗi cho cùng một tệp bằng cách sử dụng ghci:

test.hs:71:13:
    Couldn't match type T.Text with ‘[Char]’
    Expected type: M.Map [Char] ([(Integer, Integer)], S.Set Integer)
      Actual type: M.Map T.Text ([(Integer, Integer)], S.Set Integer)
    In the second argument of M.map’, namely zippedMap
    In the second argument of ‘($)’, namely
      M.map
...

cái nào sạch hơn nhiều Có cách nào để ghc-modsử dụng tên ngắn cho các loại?


3
Đây không phải là hành vi quan sát đối với tôi. Điều này vẫn còn xảy ra cho bạn? Những phiên bản ghcghc-modbạn đang sử dụng?
dkasak

3
Bạn có một ví dụ khép kín (bao gồm nhập khẩu) tạo đầu ra như trên không? Tôi nghĩ rằng tôi có một ý tưởng về vấn đề có thể là gì, nhưng hơi khó để chỉ nói từ đầu ra ...
Alec

Câu trả lời:


1

Bạn có thể truyền đối số cho ghc từ ghc-mod như:

$ ghc-mod lint *.hs -g -dsuppress-module-prefixes

Điều này sẽ gửi đối số -dsuppress-module-prefixescho ghc.


0

Bạn có thể thử chuyển qua -dsuppress-module-prefixesdưới dạng tùy chọn GHC. Tại một số điểm, nó đã giúp tôi thoát khỏi vòng loại mô-đun trong tên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.