Skip to content

Commit 1add7a9

Browse files
committedJan 5, 2021
Only print non-hole errors, if present
1 parent 90df5df commit 1add7a9

File tree

2 files changed

+420
-2
lines changed

2 files changed

+420
-2
lines changed
 

‎out-2h-d2.txt

+413
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,413 @@
1+
Up to date
2+
SCOPE:
3+
import Prelude hiding (id, ($), ($!), asTypeOf)
4+
import Test.QuickCheck (quickCheckWithResult, Result(..), stdArgs, Args(..), isSuccess, (==>))
5+
TARGET TYPE:
6+
[Int] -> Int
7+
MUST SATISFY:
8+
prop_IsSymmetric f xs = f xs == f (reverse xs)
9+
prop_Bin f = f [] == 0 || f [] == 1
10+
prop_not_const f = not ((f []) == f [1,2,3])
11+
IN CONTEXT:
12+
zero = 0 :: Int
13+
one = 1 :: Int
14+
PARAMETERS:
15+
MAX HOLES: 2
16+
MAX DEPTH: 2
17+
SYNTHESIZING...
18+
GENERATING CANDIDATES...DONE!
19+
GENERATED 6483 CANDIDATES!
20+
COMPILING CANDIDATE CHECKS...DONE!
21+
CHECKING 6483 CANDIDATES...DONE!
22+
FOUND 387 MATCHES:
23+
length
24+
product
25+
sum
26+
(foldl (-) zero)
27+
(foldl (-) one)
28+
(foldl (-) (negate zero))
29+
(foldl (-) (pred one))
30+
(foldl (-) (succ zero))
31+
(foldl (-) (toEnum zero))
32+
(foldl (-) (toEnum one))
33+
(foldl (-) (abs zero))
34+
(foldl (-) (abs one))
35+
(foldl (-) (signum zero))
36+
(foldl (-) (signum one))
37+
(foldl (-) (signum maxBound))
38+
(foldl gcd zero)
39+
(foldl gcd (negate zero))
40+
(foldl gcd (pred one))
41+
(foldl gcd (toEnum zero))
42+
(foldl gcd (abs zero))
43+
(foldl gcd (signum zero))
44+
(foldl (*) one)
45+
(foldl (*) (succ zero))
46+
(foldl (*) (toEnum one))
47+
(foldl (*) (abs one))
48+
(foldl (*) (signum one))
49+
(foldl (*) (signum maxBound))
50+
(foldl (+) zero)
51+
(foldl (+) one)
52+
(foldl (+) (negate zero))
53+
(foldl (+) (pred one))
54+
(foldl (+) (succ zero))
55+
(foldl (+) (toEnum zero))
56+
(foldl (+) (toEnum one))
57+
(foldl (+) (abs zero))
58+
(foldl (+) (abs one))
59+
(foldl (+) (signum zero))
60+
(foldl (+) (signum one))
61+
(foldl (+) (signum maxBound))
62+
(foldl max zero)
63+
(foldl max one)
64+
(foldl max (negate zero))
65+
(foldl max (pred one))
66+
(foldl max (succ zero))
67+
(foldl max (toEnum zero))
68+
(foldl max (toEnum one))
69+
(foldl max (abs zero))
70+
(foldl max (abs one))
71+
(foldl max (signum zero))
72+
(foldl max (signum one))
73+
(foldl max (signum maxBound))
74+
(foldl (curry length) zero)
75+
(foldl (curry length) (negate zero))
76+
(foldl (curry length) (pred one))
77+
(foldl (curry length) (toEnum zero))
78+
(foldl (curry length) (abs zero))
79+
(foldl (curry length) (signum zero))
80+
(foldl (flip subtract) zero)
81+
(foldl (flip subtract) one)
82+
(foldl (flip subtract) (negate zero))
83+
(foldl (flip subtract) (pred one))
84+
(foldl (flip subtract) (succ zero))
85+
(foldl (flip subtract) (toEnum zero))
86+
(foldl (flip subtract) (toEnum one))
87+
(foldl (flip subtract) (abs zero))
88+
(foldl (flip subtract) (abs one))
89+
(foldl (flip subtract) (signum zero))
90+
(foldl (flip subtract) (signum one))
91+
(foldl (flip subtract) (signum maxBound))
92+
(foldl (flip gcd) zero)
93+
(foldl (flip gcd) (negate zero))
94+
(foldl (flip gcd) (pred one))
95+
(foldl (flip gcd) (toEnum zero))
96+
(foldl (flip gcd) (abs zero))
97+
(foldl (flip gcd) (signum zero))
98+
(foldl (flip (*)) one)
99+
(foldl (flip (*)) (succ zero))
100+
(foldl (flip (*)) (toEnum one))
101+
(foldl (flip (*)) (abs one))
102+
(foldl (flip (*)) (signum one))
103+
(foldl (flip (*)) (signum maxBound))
104+
(foldl (flip (+)) zero)
105+
(foldl (flip (+)) one)
106+
(foldl (flip (+)) (negate zero))
107+
(foldl (flip (+)) (pred one))
108+
(foldl (flip (+)) (succ zero))
109+
(foldl (flip (+)) (toEnum zero))
110+
(foldl (flip (+)) (toEnum one))
111+
(foldl (flip (+)) (abs zero))
112+
(foldl (flip (+)) (abs one))
113+
(foldl (flip (+)) (signum zero))
114+
(foldl (flip (+)) (signum one))
115+
(foldl (flip (+)) (signum maxBound))
116+
(foldl (flip max) zero)
117+
(foldl (flip max) one)
118+
(foldl (flip max) (negate zero))
119+
(foldl (flip max) (pred one))
120+
(foldl (flip max) (succ zero))
121+
(foldl (flip max) (toEnum zero))
122+
(foldl (flip max) (toEnum one))
123+
(foldl (flip max) (abs zero))
124+
(foldl (flip max) (abs one))
125+
(foldl (flip max) (signum zero))
126+
(foldl (flip max) (signum one))
127+
(foldl (flip max) (signum maxBound))
128+
(foldr subtract zero)
129+
(foldr subtract one)
130+
(foldr subtract (negate zero))
131+
(foldr subtract (pred one))
132+
(foldr subtract (succ zero))
133+
(foldr subtract (toEnum zero))
134+
(foldr subtract (toEnum one))
135+
(foldr subtract (abs zero))
136+
(foldr subtract (abs one))
137+
(foldr subtract (signum zero))
138+
(foldr subtract (signum one))
139+
(foldr subtract (signum maxBound))
140+
(foldr gcd zero)
141+
(foldr gcd (negate zero))
142+
(foldr gcd (pred one))
143+
(foldr gcd (toEnum zero))
144+
(foldr gcd (abs zero))
145+
(foldr gcd (signum zero))
146+
(foldr (*) one)
147+
(foldr (*) (succ zero))
148+
(foldr (*) (toEnum one))
149+
(foldr (*) (abs one))
150+
(foldr (*) (signum one))
151+
(foldr (*) (signum maxBound))
152+
(foldr (+) zero)
153+
(foldr (+) one)
154+
(foldr (+) (negate zero))
155+
(foldr (+) (pred one))
156+
(foldr (+) (succ zero))
157+
(foldr (+) (toEnum zero))
158+
(foldr (+) (toEnum one))
159+
(foldr (+) (abs zero))
160+
(foldr (+) (abs one))
161+
(foldr (+) (signum zero))
162+
(foldr (+) (signum one))
163+
(foldr (+) (signum maxBound))
164+
(foldr max zero)
165+
(foldr max one)
166+
(foldr max (negate zero))
167+
(foldr max (pred one))
168+
(foldr max (succ zero))
169+
(foldr max (toEnum zero))
170+
(foldr max (toEnum one))
171+
(foldr max (abs zero))
172+
(foldr max (abs one))
173+
(foldr max (signum zero))
174+
(foldr max (signum one))
175+
(foldr max (signum maxBound))
176+
(foldr (curry length) zero)
177+
(foldr (curry length) (negate zero))
178+
(foldr (curry length) (pred one))
179+
(foldr (curry length) (toEnum zero))
180+
(foldr (curry length) (abs zero))
181+
(foldr (curry length) (signum zero))
182+
(foldr (flip (-)) zero)
183+
(foldr (flip (-)) one)
184+
(foldr (flip (-)) (negate zero))
185+
(foldr (flip (-)) (pred one))
186+
(foldr (flip (-)) (succ zero))
187+
(foldr (flip (-)) (toEnum zero))
188+
(foldr (flip (-)) (toEnum one))
189+
(foldr (flip (-)) (abs zero))
190+
(foldr (flip (-)) (abs one))
191+
(foldr (flip (-)) (signum zero))
192+
(foldr (flip (-)) (signum one))
193+
(foldr (flip (-)) (signum maxBound))
194+
(foldr (flip gcd) zero)
195+
(foldr (flip gcd) (negate zero))
196+
(foldr (flip gcd) (pred one))
197+
(foldr (flip gcd) (toEnum zero))
198+
(foldr (flip gcd) (abs zero))
199+
(foldr (flip gcd) (signum zero))
200+
(foldr (flip (*)) one)
201+
(foldr (flip (*)) (succ zero))
202+
(foldr (flip (*)) (toEnum one))
203+
(foldr (flip (*)) (abs one))
204+
(foldr (flip (*)) (signum one))
205+
(foldr (flip (*)) (signum maxBound))
206+
(foldr (flip (+)) zero)
207+
(foldr (flip (+)) one)
208+
(foldr (flip (+)) (negate zero))
209+
(foldr (flip (+)) (pred one))
210+
(foldr (flip (+)) (succ zero))
211+
(foldr (flip (+)) (toEnum zero))
212+
(foldr (flip (+)) (toEnum one))
213+
(foldr (flip (+)) (abs zero))
214+
(foldr (flip (+)) (abs one))
215+
(foldr (flip (+)) (signum zero))
216+
(foldr (flip (+)) (signum one))
217+
(foldr (flip (+)) (signum maxBound))
218+
(foldr (flip max) zero)
219+
(foldr (flip max) one)
220+
(foldr (flip max) (negate zero))
221+
(foldr (flip max) (pred one))
222+
(foldr (flip max) (succ zero))
223+
(foldr (flip max) (toEnum zero))
224+
(foldr (flip max) (toEnum one))
225+
(foldr (flip max) (abs zero))
226+
(foldr (flip max) (abs one))
227+
(foldr (flip max) (signum zero))
228+
(foldr (flip max) (signum one))
229+
(foldr (flip max) (signum maxBound))
230+
(foldr (const negate) one)
231+
(foldr (const negate) (succ zero))
232+
(foldr (const negate) (toEnum one))
233+
(foldr (const negate) (abs one))
234+
(foldr (const negate) (signum one))
235+
(foldr (const negate) (signum maxBound))
236+
(foldr (const pred) zero)
237+
(foldr (const pred) one)
238+
(foldr (const pred) (negate zero))
239+
(foldr (const pred) (pred one))
240+
(foldr (const pred) (succ zero))
241+
(foldr (const pred) (toEnum zero))
242+
(foldr (const pred) (toEnum one))
243+
(foldr (const pred) (abs zero))
244+
(foldr (const pred) (abs one))
245+
(foldr (const pred) (signum zero))
246+
(foldr (const pred) (signum one))
247+
(foldr (const pred) (signum maxBound))
248+
(foldr (const succ) zero)
249+
(foldr (const succ) one)
250+
(foldr (const succ) (negate zero))
251+
(foldr (const succ) (pred one))
252+
(foldr (const succ) (succ zero))
253+
(foldr (const succ) (toEnum zero))
254+
(foldr (const succ) (toEnum one))
255+
(foldr (const succ) (abs zero))
256+
(foldr (const succ) (abs one))
257+
(foldr (const succ) (signum zero))
258+
(foldr (const succ) (signum one))
259+
(foldr (const succ) (signum maxBound))
260+
(foldr (return negate) one)
261+
(foldr (return negate) (succ zero))
262+
(foldr (return negate) (toEnum one))
263+
(foldr (return negate) (abs one))
264+
(foldr (return negate) (signum one))
265+
(foldr (return negate) (signum maxBound))
266+
(foldr (return pred) zero)
267+
(foldr (return pred) one)
268+
(foldr (return pred) (negate zero))
269+
(foldr (return pred) (pred one))
270+
(foldr (return pred) (succ zero))
271+
(foldr (return pred) (toEnum zero))
272+
(foldr (return pred) (toEnum one))
273+
(foldr (return pred) (abs zero))
274+
(foldr (return pred) (abs one))
275+
(foldr (return pred) (signum zero))
276+
(foldr (return pred) (signum one))
277+
(foldr (return pred) (signum maxBound))
278+
(foldr (return succ) zero)
279+
(foldr (return succ) one)
280+
(foldr (return succ) (negate zero))
281+
(foldr (return succ) (pred one))
282+
(foldr (return succ) (succ zero))
283+
(foldr (return succ) (toEnum zero))
284+
(foldr (return succ) (toEnum one))
285+
(foldr (return succ) (abs zero))
286+
(foldr (return succ) (abs one))
287+
(foldr (return succ) (signum zero))
288+
(foldr (return succ) (signum one))
289+
(foldr (return succ) (signum maxBound))
290+
(foldr (pure negate) one)
291+
(foldr (pure negate) (succ zero))
292+
(foldr (pure negate) (toEnum one))
293+
(foldr (pure negate) (abs one))
294+
(foldr (pure negate) (signum one))
295+
(foldr (pure negate) (signum maxBound))
296+
(foldr (pure pred) zero)
297+
(foldr (pure pred) one)
298+
(foldr (pure pred) (negate zero))
299+
(foldr (pure pred) (pred one))
300+
(foldr (pure pred) (succ zero))
301+
(foldr (pure pred) (toEnum zero))
302+
(foldr (pure pred) (toEnum one))
303+
(foldr (pure pred) (abs zero))
304+
(foldr (pure pred) (abs one))
305+
(foldr (pure pred) (signum zero))
306+
(foldr (pure pred) (signum one))
307+
(foldr (pure pred) (signum maxBound))
308+
(foldr (pure succ) zero)
309+
(foldr (pure succ) one)
310+
(foldr (pure succ) (negate zero))
311+
(foldr (pure succ) (pred one))
312+
(foldr (pure succ) (succ zero))
313+
(foldr (pure succ) (toEnum zero))
314+
(foldr (pure succ) (toEnum one))
315+
(foldr (pure succ) (abs zero))
316+
(foldr (pure succ) (abs one))
317+
(foldr (pure succ) (signum zero))
318+
(foldr (pure succ) (signum one))
319+
(foldr (pure succ) (signum maxBound))
320+
(head (repeat length))
321+
(head (repeat product))
322+
(head (repeat sum))
323+
(head (return length))
324+
(head (return product))
325+
(head (return sum))
326+
(head (pure length))
327+
(head (pure product))
328+
(head (pure sum))
329+
(last (return length))
330+
(last (return product))
331+
(last (return sum))
332+
(last (pure length))
333+
(last (pure product))
334+
(last (pure sum))
335+
((!!) (repeat length) zero)
336+
((!!) (repeat length) one)
337+
((!!) (repeat length) (negate zero))
338+
((!!) (repeat length) (pred one))
339+
((!!) (repeat length) (succ zero))
340+
((!!) (repeat length) (succ one))
341+
((!!) (repeat length) (toEnum zero))
342+
((!!) (repeat length) (toEnum one))
343+
((!!) (repeat length) (abs zero))
344+
((!!) (repeat length) (abs one))
345+
((!!) (repeat length) (signum zero))
346+
((!!) (repeat length) (signum one))
347+
((!!) (repeat length) (signum maxBound))
348+
((!!) (repeat product) zero)
349+
((!!) (repeat product) one)
350+
((!!) (repeat product) (negate zero))
351+
((!!) (repeat product) (pred one))
352+
((!!) (repeat product) (succ zero))
353+
((!!) (repeat product) (succ one))
354+
((!!) (repeat product) (toEnum zero))
355+
((!!) (repeat product) (toEnum one))
356+
((!!) (repeat product) (abs zero))
357+
((!!) (repeat product) (abs one))
358+
((!!) (repeat product) (signum zero))
359+
((!!) (repeat product) (signum one))
360+
((!!) (repeat product) (signum maxBound))
361+
((!!) (repeat sum) zero)
362+
((!!) (repeat sum) one)
363+
((!!) (repeat sum) (negate zero))
364+
((!!) (repeat sum) (pred one))
365+
((!!) (repeat sum) (succ zero))
366+
((!!) (repeat sum) (succ one))
367+
((!!) (repeat sum) (toEnum zero))
368+
((!!) (repeat sum) (toEnum one))
369+
((!!) (repeat sum) (abs zero))
370+
((!!) (repeat sum) (abs one))
371+
((!!) (repeat sum) (signum zero))
372+
((!!) (repeat sum) (signum one))
373+
((!!) (repeat sum) (signum maxBound))
374+
((!!) (return length) zero)
375+
((!!) (return length) (negate zero))
376+
((!!) (return length) (pred one))
377+
((!!) (return length) (toEnum zero))
378+
((!!) (return length) (abs zero))
379+
((!!) (return length) (signum zero))
380+
((!!) (return product) zero)
381+
((!!) (return product) (negate zero))
382+
((!!) (return product) (pred one))
383+
((!!) (return product) (toEnum zero))
384+
((!!) (return product) (abs zero))
385+
((!!) (return product) (signum zero))
386+
((!!) (return sum) zero)
387+
((!!) (return sum) (negate zero))
388+
((!!) (return sum) (pred one))
389+
((!!) (return sum) (toEnum zero))
390+
((!!) (return sum) (abs zero))
391+
((!!) (return sum) (signum zero))
392+
((!!) (pure length) zero)
393+
((!!) (pure length) (negate zero))
394+
((!!) (pure length) (pred one))
395+
((!!) (pure length) (toEnum zero))
396+
((!!) (pure length) (abs zero))
397+
((!!) (pure length) (signum zero))
398+
((!!) (pure product) zero)
399+
((!!) (pure product) (negate zero))
400+
((!!) (pure product) (pred one))
401+
((!!) (pure product) (toEnum zero))
402+
((!!) (pure product) (abs zero))
403+
((!!) (pure product) (signum zero))
404+
((!!) (pure sum) zero)
405+
((!!) (pure sum) (negate zero))
406+
((!!) (pure sum) (pred one))
407+
((!!) (pure sum) (toEnum zero))
408+
((!!) (pure sum) (abs zero))
409+
((!!) (pure sum) (signum zero))
410+
411+
real 4m6.056s
412+
user 0m56.841s
413+
sys 3m4.300s

‎src/Main.hs

+7-2
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,12 @@ type ValsAndRefs = ([String], [String])
7474
inspectException :: SourceError -> Ghc (Either [ValsAndRefs] Dynamic)
7575
inspectException err = do
7676
flags <- getSessionDynFlags
77-
let supp = bagToList $ (errDocSupplementary . errMsgDoc) <$> (srcErrorMessages err)
77+
78+
let isHole = allBag holeImp $ (errDocImportant . errMsgDoc) <$> (srcErrorMessages err)
79+
where holeImp = all isHoleMsg . map (showSDoc flags)
80+
isHoleMsg m = take (length holeMsg) m == holeMsg
81+
where holeMsg = "Found hole:"
82+
supp = bagToList $ (errDocSupplementary . errMsgDoc) <$> (srcErrorMessages err)
7883
isValid ('V':'a':'l':'i':'d':_:xs) =
7984
case xs of
8085
'h':'o':'l':'e':_ -> True
@@ -91,7 +96,7 @@ inspectException err = do
9196
(v,r:rfs) -> (v,rfs)
9297
(v, []) -> (v, [])
9398
valsAndRefs = map spl $ map lines $ catMaybes valids
94-
when (null valsAndRefs) (printException err)
99+
when (null valsAndRefs && (not isHole)) (printException err)
95100
--liftIO $ print $ valids
96101
--mapM_ (liftIO . print) valsAndRefs
97102
return $ Left $ valsAndRefs

0 commit comments

Comments
 (0)
Please sign in to comment.