2011-11-22 17 views
24

जब मैं हास्केल कार्यक्रमों प्रोटोटाइप, मैं हमेशा इस तरह चेतावनी के सैकड़ों प्राप्त (मजाक नहीं कर रहा):कैसे [अस्थायी रूप से] दबाने के लिए "परिभाषित लेकिन उपयोग नहीं किया गया" चेतावनी?

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:70:15: 
    Warning: Defined but not used: `ta' 

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:72:15: 
    Warning: Defined but not used: `ta' 

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:77:26: 
    Warning: Defined but not used: `v'

वहाँ वैसे भी है अस्थायी रूप से इन चेतावनियों को दूर करने के? मैं अपने .hs फ़ाइल में इस डाल की कोशिश की:

{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-name-shadowing 
    -fwarn-monomorphism-restriction -fwarn-hi-shadowing 
#-} 

दुर्भाग्य से, यह काम नहीं करता है, और हालांकि मैं भी करने की कोशिश की: सेट -fno-चेतावनी दी-अप्रयुक्त-बांधता है, यह अभी भी काम नहीं करता।

बहुत धन्यवाद!

+0

मैं वास्तव में 'OPTIONS_GHC' चीज काम करना चाहता हूं, लेकिन सटीक व्यवहार को समझने, टिकट दर्ज करने आदि के साथ पालन करने के लिए चारों ओर नहीं मिल पाया है। – sclv

उत्तर

28

आपकी स्थिति के आधार पर एक और संभावना: मेरा मानना ​​है कि आप इस चेतावनी को दबाने के लिए अंडरस्कोर के साथ पहचानकर्ताओं को उपसर्ग कर सकते हैं। तो:

_x = 42 

चेतावनी उत्पन्न नहीं करेगा अगर _x का उपयोग नहीं किया जाता है।

+1

। हालांकि यह क्यों हो रहा है? –

8

मैं आमतौर पर सभी चेतावनियों को दबाने के लिए उपयोग करता हूं जब मैं अस्थायी रूप से कुछ चेतावनी से छुटकारा पाता हूं।

+0

लेकिन फिर आप अन्य चेतावनियों को खो देते हैं जिन्हें आप चाहते थे देखना। –

+2

हां, लेकिन जब मैं अस्थायी रूप से चेतावनियों को हटा देता हूं तो यह अस्थायी है, इसलिए मुझे जल्द ही उन चेतावनियों को देखना होगा। वास्तव में – augustss

6

मैं इस के लिए एक समाधान का उपयोग करें:

मैं बिना चेतावनी के संकलन, लेकिन फिर मैं मेरे लिए चेतावनी प्रदर्शित करने के लिए HLint उपकरण का उपयोग। एचएलआईंट में चेतावनियों को अलग से बदलने की सुविधा है।

15

जीएचसी में दो चेतावनियां झंडे हैं जो Warning: Defined but not used को ट्रिगर कर सकती हैं।

आपको कमांड लाइन झंडे -fno-warn-unused-binds और -fno-warn-unused-matches के कुछ संयोजन की आवश्यकता है।

+0

यदि 'hdevtools' चलाना है तो आपको '-g' को प्रीपेड करना होगा ताकि यह काम इस तरह हो:' hdevtools check -g-Wall -g-wall -g-fno-warn-unused-binds -g-fno-warn- अप्रयुक्त-मिलान स्रोत.hs' –

संबंधित मुद्दे

 संबंधित मुद्दे