From 9b2cd8567bb5f2bd556b219de2db83f5d018c32c Mon Sep 17 00:00:00 2001 From: meck Date: Tue, 23 Oct 2018 15:08:43 +0200 Subject: [PATCH 1/2] liqud haskell files slipped past gitignore --- test/testdata/liquid/.liquid/Evens.hs.err | 1 - test/testdata/liquid/.liquid/Evens.hs.json | 1 - .../liquid/.liquid/Evens.hs.vim.annot | 38 ------------------- 3 files changed, 40 deletions(-) delete mode 100644 test/testdata/liquid/.liquid/Evens.hs.err delete mode 100644 test/testdata/liquid/.liquid/Evens.hs.json delete mode 100644 test/testdata/liquid/.liquid/Evens.hs.vim.annot diff --git a/test/testdata/liquid/.liquid/Evens.hs.err b/test/testdata/liquid/.liquid/Evens.hs.err deleted file mode 100644 index aafe12cb9..000000000 --- a/test/testdata/liquid/.liquid/Evens.hs.err +++ /dev/null @@ -1 +0,0 @@ -{"o_vars":null,"o_types":[[{"spanInfo":{"startLine":15,"endLine":15,"endCol":15,"startCol":12,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{v : x1:GHC.Types.Bool -> {v : GHC.Types.Bool | v <=> not x1} | v == GHC.Classes.not}"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":23,"startCol":19,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802156","GHC.Types.Int"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":28,"startCol":21,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802152","{v : GHC.Types.Int | v == (0 : int)}"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":7,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.double","[{v : GHC.Types.Int | v >= 0}] -> [{v : GHC.Types.Int | v mod 2 == 0}]"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":30,"startCol":27,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802159","GHC.Types.Int"]]],[{"spanInfo":{"startLine":13,"endLine":13,"endCol":7,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.isEven","x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0}"]]],[{"spanInfo":{"startLine":9,"endLine":9,"endCol":8,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.notEven","{v : GHC.Types.Int | v mod 2 == 0}"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":27,"startCol":26,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":30,"startCol":21,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802153","[{v : GHC.Types.Int | v < n}]"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":20,"startCol":15,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802136","GHC.Types.Int"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":27,"startCol":22,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.range","x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}]"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":11,"startCol":10,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["k","{v : GHC.Types.Int | v mod 2 == 0}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":32,"startCol":31,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}"]]],[{"spanInfo":{"startLine":1,"endLine":1,"endCol":1,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.$trModule","GHC.Types.Module"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":30,"startCol":13,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802134","{VV : [{VV : GHC.Types.Int | VV >= 0\n && VV mod 2 == 0}] | len VV <= len xs\n && len VV >= 0}"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":19,"startCol":14,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802133","GHC.Types.Int"]]],[{"spanInfo":{"startLine":41,"endLine":41,"endCol":16,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{v : [GHC.Types.Char] -> (GHC.Types.IO ()) | v == System.IO.putStrLn}"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":29,"startCol":17,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802147","GHC.Types.Bool"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":9,"startCol":7,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["xs","[{v : GHC.Types.Int | v mod 2 == 0}]"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":40,"startCol":32,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802149","GHC.Types.Bool"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":26,"startCol":21,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{v : x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}] | v == Main.range}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":6,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.evens","{v : GHC.Types.Int | v >= 0} -> [{v : GHC.Types.Int | v mod 2 == 0}]"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":10,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.weAreEven","[{v : GHC.Types.Int | v mod 2 == 0}]"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":17,"startCol":16,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":33,"startCol":29,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802141","GHC.Types.Int"]]],[{"spanInfo":{"startLine":21,"endLine":21,"endCol":6,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.range","x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}]"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":38,"startCol":32,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{v : x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0} | v == Main.isEven}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":41,"startCol":11,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802151","{VV : [{VV : GHC.Types.Int | VV /= n\n && VV <= n\n && VV < n\n && VV >= 0\n && VV mod 2 == 0}] | len VV >= 0}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":9,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Bool | v <=> x1 < x2}"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":29,"startCol":28,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":21,"startCol":20,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":10,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["xs","[{v : GHC.Types.Int | v >= 0}]"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":31,"startCol":14,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802137","{VV : [{VV : GHC.Types.Int | VV mod 2 == 0}] | len VV <= len xs\n && len VV >= 0}"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":18,"startCol":17,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":28,"startCol":25,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802146","GHC.Types.Int"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":12,"startCol":5,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802138","{v : GHC.Types.Bool | v <=> lo < hi}"]]],[{"spanInfo":{"startLine":41,"endLine":41,"endCol":24,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802127","[GHC.Types.Char]"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":37,"startCol":22,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802142","[{v : GHC.Types.Int | v < hi}]"]]],[{"spanInfo":{"startLine":21,"endLine":21,"endCol":9,"startCol":7,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lo","GHC.Types.Int"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":8,"startCol":7,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["n","{v : GHC.Types.Int | v >= 0}"]]],[{"spanInfo":{"startLine":41,"endLine":41,"endCol":5,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[":Main.main","(GHC.Types.IO ())"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":23,"startCol":17,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.isEven","x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0}"]]],[{"spanInfo":{"startLine":21,"endLine":21,"endCol":12,"startCol":10,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["hi","GHC.Types.Int"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":6,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.shift","[{v : GHC.Types.Int | v mod 2 == 0}] -> {v : GHC.Types.Int | v mod 2 == 0} -> [{v : GHC.Types.Int | v mod 2 == 0}]"]]]],"o_templs":[[{"spanInfo":{"startLine":15,"endLine":15,"endCol":15,"startCol":12,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{lq_tmp$x##850 : lq_tmp$x##851:GHC.Types.Bool -> {lq_tmp$x##849 : GHC.Types.Bool | lq_tmp$x##849 <=> not lq_tmp$x##851} | lq_tmp$x##850 == GHC.Classes.not}"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":23,"startCol":19,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802156","{lq_tmp$x##1120 : GHC.Types.Int^\"lq_tmp$x##1119\" | lq_tmp$x##1120 == lq_anf$##7205759403792802154##d2dY - lq_anf$##7205759403792802155##d2dZ}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":28,"startCol":21,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802152","{lq_tmp$x##1053 : GHC.Types.Int | lq_tmp$x##1053 == (0 : int)}"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":7,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.double","lq_tmp$x##256:[{lq_tmp$x##0 : GHC.Types.Int | lq_tmp$x##0 >= 0}] -> [{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}]"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":30,"startCol":27,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802159","{lq_tmp$x##1150 : GHC.Types.Int^\"lq_tmp$x##1149\" | lq_tmp$x##1150 == lq_anf$##7205759403792802157##d2e1 - lq_anf$##7205759403792802158##d2e2}"]]],[{"spanInfo":{"startLine":13,"endLine":13,"endCol":7,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.isEven","lq_tmp$x##798:{lq_tmp$x##0 : GHC.Types.Int | lq_tmp$x##0 >= 0} -> {v : GHC.Types.Bool | v <=> lq_tmp$x##798 mod 2 == 0}"]]],[{"spanInfo":{"startLine":9,"endLine":9,"endCol":8,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.notEven","{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":27,"startCol":26,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"lq_tmp$x##833:GHC.Types.Int -> lq_tmp$x##834:GHC.Types.Int -> {lq_tmp$x##836 : GHC.Types.Int^\"lq_tmp$x##835\" | lq_tmp$x##836 == lq_tmp$x##833 - lq_tmp$x##834}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":30,"startCol":21,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802153","[{lq_tmp$x##1060 : GHC.Types.Int | lq_anf$##7205759403792802152##d2dW <= lq_tmp$x##1060\n && lq_tmp$x##1060 < n##a1TA}]"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":20,"startCol":15,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802136","{lq_tmp$x##576 : GHC.Types.Int^\"lq_tmp$x##575\" | lq_tmp$x##576 == ds_d2dc + k##a1TF}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":27,"startCol":22,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.range","lq_tmp$x##666:GHC.Types.Int -> lq_tmp$x##667:GHC.Types.Int -> [{v : GHC.Types.Int | lq_tmp$x##666 <= v\n && v < lq_tmp$x##667}]"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":11,"startCol":10,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["k","{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":32,"startCol":31,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"lq_tmp$x##733:GHC.Types.Int -> lq_tmp$x##734:GHC.Types.Int -> {lq_tmp$x##736 : GHC.Types.Int^\"lq_tmp$x##735\" | lq_tmp$x##736 == lq_tmp$x##733 + lq_tmp$x##734}"]]],[{"spanInfo":{"startLine":1,"endLine":1,"endCol":1,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.$trModule","GHC.Types.Module"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":30,"startCol":13,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802134","{VV##277 : [{VV##270 : GHC.Types.Int^\"lq_tmp$x##272\" | $k_##271[ds_d2d5:=ds_d2d7][lq_tmp$x##281:=ds_d2d7][lq_tmp$x##285:=ds_d2d7]}]^\"lq_tmp$x##279\" | $k_##278[ds_d2d5:=ds_d2d7][lq_tmp$x##281:=ds_d2d7][lq_tmp$x##285:=ds_d2d7]}"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":19,"startCol":14,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802133","{lq_tmp$x##374 : GHC.Types.Int^\"lq_tmp$x##373\" | lq_tmp$x##374 == ds_d2d6 + ds_d2d6}"]]],[{"spanInfo":{"startLine":41,"endLine":41,"endCol":16,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{lq_tmp$x##203 : lq_tmp$x##205:[GHC.Types.Char] -> (GHC.Types.IO ()) | lq_tmp$x##203 == System.IO.putStrLn}"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":29,"startCol":17,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802147","{v : GHC.Types.Bool | v <=> lq_anf$##7205759403792802146##d2dQ mod 2 == 0}"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":9,"startCol":7,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["xs","[{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}]"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":40,"startCol":32,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802149","{lq_tmp$x##967 : GHC.Types.Bool | lq_tmp$x##967 <=> ds_d2dq mod 2 == 0}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":26,"startCol":21,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{lq_tmp$x##1065 : lq_tmp$x##1066:GHC.Types.Int -> lq_tmp$x##1067:GHC.Types.Int -> [{lq_tmp$x##1060 : GHC.Types.Int | lq_tmp$x##1066 <= lq_tmp$x##1060\n && lq_tmp$x##1060 < lq_tmp$x##1067}] | lq_tmp$x##1065 == Main.range}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":6,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.evens","lq_tmp$x##861:{lq_tmp$x##0 : GHC.Types.Int | lq_tmp$x##0 >= 0} -> [{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}]"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":10,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.weAreEven","[{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}]"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":17,"startCol":16,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"lq_tmp$x##371:GHC.Types.Int -> lq_tmp$x##372:GHC.Types.Int -> {lq_tmp$x##374 : GHC.Types.Int^\"lq_tmp$x##373\" | lq_tmp$x##374 == lq_tmp$x##371 + lq_tmp$x##372}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":33,"startCol":29,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802141","{lq_tmp$x##736 : GHC.Types.Int^\"lq_tmp$x##735\" | lq_tmp$x##736 == lo##a1TC + lq_anf$##7205759403792802140##d2dK}"]]],[{"spanInfo":{"startLine":21,"endLine":21,"endCol":6,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.range","lq_tmp$x##666:GHC.Types.Int -> lq_tmp$x##667:GHC.Types.Int -> [{v : GHC.Types.Int | lq_tmp$x##666 <= v\n && v < lq_tmp$x##667}]"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":38,"startCol":32,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"{lq_tmp$x##968 : lq_tmp$x##969:{lq_tmp$x##966 : GHC.Types.Int | lq_tmp$x##966 >= 0} -> {lq_tmp$x##967 : GHC.Types.Bool | lq_tmp$x##967 <=> lq_tmp$x##969 mod 2 == 0} | lq_tmp$x##968 == Main.isEven}"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":41,"startCol":11,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802151","{VV##881 : [{VV##874 : GHC.Types.Int^\"lq_tmp$x##876\" | $k_##875[ds_d2dp:=ds_d2dr][lq_tmp$x##889:=ds_d2dr][lq_tmp$x##885:=ds_d2dr]}]^\"lq_tmp$x##883\" | $k_##882[ds_d2dp:=ds_d2dr][lq_tmp$x##889:=ds_d2dr][lq_tmp$x##885:=ds_d2dr]}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":9,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"lq_tmp$x##681:{lq_tmp$x##686 : GHC.Types.Int^\"lq_tmp$x##685\" | $k_##684[VV##683:=lq_tmp$x##686][lq_tmp$x##680:=GHC.Classes.$fOrdInt]} -> lq_tmp$x##682:{lq_tmp$x##686 : GHC.Types.Int^\"lq_tmp$x##685\" | $k_##684[VV##683:=lq_tmp$x##686][lq_tmp$x##680:=GHC.Classes.$fOrdInt]} -> {lq_tmp$x##676 : GHC.Types.Bool | lq_tmp$x##676 <=> lq_tmp$x##681 < lq_tmp$x##682}"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":29,"startCol":28,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"lq_tmp$x##1147:GHC.Types.Int -> lq_tmp$x##1148:GHC.Types.Int -> {lq_tmp$x##1150 : GHC.Types.Int^\"lq_tmp$x##1149\" | lq_tmp$x##1150 == lq_tmp$x##1147 - lq_tmp$x##1148}"]]],[{"spanInfo":{"startLine":6,"endLine":6,"endCol":21,"startCol":20,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"lq_tmp$x##1117:GHC.Types.Int -> lq_tmp$x##1118:GHC.Types.Int -> {lq_tmp$x##1120 : GHC.Types.Int^\"lq_tmp$x##1119\" | lq_tmp$x##1120 == lq_tmp$x##1117 - lq_tmp$x##1118}"]]],[{"spanInfo":{"startLine":29,"endLine":29,"endCol":10,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["xs","[{lq_tmp$x##0 : GHC.Types.Int | lq_tmp$x##0 >= 0}]"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":31,"startCol":14,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802137","{VV##479 : [{VV##472 : GHC.Types.Int^\"lq_tmp$x##474\" | $k_##473[lq_tmp$x##483:=ds_d2dd][lq_tmp$x##487:=ds_d2dd][ds_d2db:=ds_d2dd]}]^\"lq_tmp$x##481\" | $k_##480[lq_tmp$x##483:=ds_d2dd][lq_tmp$x##487:=ds_d2dd][ds_d2db:=ds_d2dd]}"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":18,"startCol":17,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[null,"lq_tmp$x##573:GHC.Types.Int -> lq_tmp$x##574:GHC.Types.Int -> {lq_tmp$x##576 : GHC.Types.Int^\"lq_tmp$x##575\" | lq_tmp$x##576 == lq_tmp$x##573 + lq_tmp$x##574}"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":28,"startCol":25,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802146","{lq_tmp$x##836 : GHC.Types.Int^\"lq_tmp$x##835\" | lq_tmp$x##836 == ds_d2dj - lq_anf$##7205759403792802145##d2dP}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":12,"startCol":5,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802138","{lq_tmp$x##676 : GHC.Types.Bool | lq_tmp$x##676 <=> lo##a1TC < hi##a1TD}"]]],[{"spanInfo":{"startLine":41,"endLine":41,"endCol":24,"startCol":8,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802127","{lq_tmp$x##191 : [GHC.Types.Char] | lq_tmp$x##191 ~~ lq_anf$##7205759403792802126##d2dw\n && len lq_tmp$x##191 == strLen lq_anf$##7205759403792802126##d2dw}"]]],[{"spanInfo":{"startLine":22,"endLine":22,"endCol":37,"startCol":22,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lq_anf$##7205759403792802142","[{v : GHC.Types.Int | lq_anf$##7205759403792802141##d2dL <= v\n && v < hi##a1TD}]"]]],[{"spanInfo":{"startLine":21,"endLine":21,"endCol":9,"startCol":7,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["lo","GHC.Types.Int"]]],[{"spanInfo":{"startLine":18,"endLine":18,"endCol":8,"startCol":7,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["n","{lq_tmp$x##0 : GHC.Types.Int | lq_tmp$x##0 >= 0}"]]],[{"spanInfo":{"startLine":41,"endLine":41,"endCol":5,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[[":Main.main","(GHC.Types.IO {lq_tmp$x##222 : ()^\"lq_tmp$x##221\" \"lq_tmp$x##8\" | $k_##220[lq_tmp$x##218:=Main.main][VV##219:=lq_tmp$x##222]})"]]],[{"spanInfo":{"startLine":15,"endLine":15,"endCol":23,"startCol":17,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.isEven","lq_tmp$x##798:{lq_tmp$x##0 : GHC.Types.Int | lq_tmp$x##0 >= 0} -> {v : GHC.Types.Bool | v <=> lq_tmp$x##798 mod 2 == 0}"]]],[{"spanInfo":{"startLine":21,"endLine":21,"endCol":12,"startCol":10,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["hi","GHC.Types.Int"]]],[{"spanInfo":{"startLine":26,"endLine":26,"endCol":6,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true},[["Main.shift","lq_tmp$x##456:[{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}] -> lq_tmp$x##457:{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0} -> [{lq_tmp$x##3 : GHC.Types.Int | lq_tmp$x##3 mod 2 == 0}]"]]]],"o_bots":[],"o_result":{"tag":"Unsafe","contents":[{"msg":"Liquid Type Mismatch\n Inferred type\n VV : {v : Int | v == (7 : int)}\n \n not a subtype of Required type\n VV : {VV : Int | VV mod 2 == 0}\n \n In Context","pos":{"spanInfo":{"startLine":9,"endLine":9,"endCol":8,"startCol":1,"filename":"/home/alanz/mysrc/github/alanz/haskell-ide-engine/test/testdata/liquid/Evens.hs"},"realSpan":true}}]}} \ No newline at end of file diff --git a/test/testdata/liquid/.liquid/Evens.hs.json b/test/testdata/liquid/.liquid/Evens.hs.json deleted file mode 100644 index 0e7c7ca82..000000000 --- a/test/testdata/liquid/.liquid/Evens.hs.json +++ /dev/null @@ -1 +0,0 @@ -{"status":"unsafe","types":{"15":{"25":{"ann":"GHC.Types.Int","ident":"lq_anf$##7205759403792802146","row":15,"col":25},"12":{"ann":"{v : x1:GHC.Types.Bool -> {v : GHC.Types.Bool | v <=> not x1} | v == GHC.Classes.not}","ident":"_","row":15,"col":12},"17":{"ann":"x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0}","ident":"Main.isEven","row":15,"col":17},"26":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}","ident":"_","row":15,"col":26}},"13":{"1":{"ann":"x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0}","ident":"Main.isEven","row":13,"col":1}},"22":{"31":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}","ident":"_","row":22,"col":31},"22":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}]","ident":"Main.range","row":22,"col":22},"29":{"ann":"GHC.Types.Int","ident":"lq_anf$##7205759403792802141","row":22,"col":29},"5":{"ann":"{v : GHC.Types.Bool | v <=> lo < hi}","ident":"lq_anf$##7205759403792802138","row":22,"col":5},"8":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Bool | v <=> x1 < x2}","ident":"_","row":22,"col":8}},"29":{"13":{"ann":"{VV : [{VV : GHC.Types.Int | VV >= 0\n && VV mod 2 == 0}] | len VV <= len xs\n && len VV >= 0}","ident":"lq_anf$##7205759403792802134","row":29,"col":13},"14":{"ann":"GHC.Types.Int","ident":"lq_anf$##7205759403792802133","row":29,"col":14},"1":{"ann":"[{v : GHC.Types.Int | v >= 0}] -> [{v : GHC.Types.Int | v mod 2 == 0}]","ident":"Main.double","row":29,"col":1},"16":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}","ident":"_","row":29,"col":16},"8":{"ann":"[{v : GHC.Types.Int | v >= 0}]","ident":"xs","row":29,"col":8}},"1":{"1":{"ann":"GHC.Types.Module","ident":"Main.$trModule","row":1,"col":1}},"18":{"7":{"ann":"{v : GHC.Types.Int | v >= 0}","ident":"n","row":18,"col":7},"1":{"ann":"{v : GHC.Types.Int | v >= 0} -> [{v : GHC.Types.Int | v mod 2 == 0}]","ident":"Main.evens","row":18,"col":1},"11":{"ann":"{VV : [{VV : GHC.Types.Int | VV /= n\n && VV <= n\n && VV < n\n && VV >= 0\n && VV mod 2 == 0}] | len VV >= 0}","ident":"lq_anf$##7205759403792802151","row":18,"col":11},"21":{"ann":"{v : x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}] | v == Main.range}","ident":"_","row":18,"col":21},"32":{"ann":"{v : x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0} | v == Main.isEven}","ident":"_","row":18,"col":32}},"26":{"15":{"ann":"GHC.Types.Int","ident":"lq_anf$##7205759403792802136","row":26,"col":15},"7":{"ann":"[{v : GHC.Types.Int | v mod 2 == 0}]","ident":"xs","row":26,"col":7},"14":{"ann":"{VV : [{VV : GHC.Types.Int | VV mod 2 == 0}] | len VV <= len xs\n && len VV >= 0}","ident":"lq_anf$##7205759403792802137","row":26,"col":14},"17":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}","ident":"_","row":26,"col":17},"1":{"ann":"[{v : GHC.Types.Int | v mod 2 == 0}] -> {v : GHC.Types.Int | v mod 2 == 0} -> [{v : GHC.Types.Int | v mod 2 == 0}]","ident":"Main.shift","row":26,"col":1},"10":{"ann":"{v : GHC.Types.Int | v mod 2 == 0}","ident":"k","row":26,"col":10}},"41":{"1":{"ann":"(GHC.Types.IO ())","ident":":Main.main","row":41,"col":1},"8":{"ann":"{v : [GHC.Types.Char] -> (GHC.Types.IO ()) | v == System.IO.putStrLn}","ident":"_","row":41,"col":8}},"21":{"7":{"ann":"GHC.Types.Int","ident":"lo","row":21,"col":7},"1":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}]","ident":"Main.range","row":21,"col":1},"10":{"ann":"GHC.Types.Int","ident":"hi","row":21,"col":10}},"6":{"28":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}","ident":"_","row":6,"col":28},"19":{"ann":"GHC.Types.Int","ident":"lq_anf$##7205759403792802156","row":6,"col":19},"1":{"ann":"[{v : GHC.Types.Int | v mod 2 == 0}]","ident":"Main.weAreEven","row":6,"col":1},"20":{"ann":"x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}","ident":"_","row":6,"col":20},"27":{"ann":"GHC.Types.Int","ident":"lq_anf$##7205759403792802159","row":6,"col":27}},"9":{"1":{"ann":"{v : GHC.Types.Int | v mod 2 == 0}","ident":"Main.notEven","row":9,"col":1}}},"errors":[{"start":{"line":9,"column":1},"stop":{"line":9,"column":8},"message":"Error: Liquid Type Mismatch\n Inferred type\n VV : {v : Int | v == (7 : int)}\n \n not a subtype of Required type\n VV : {VV : Int | VV mod 2 == 0}\n \n In Context"}]} \ No newline at end of file diff --git a/test/testdata/liquid/.liquid/Evens.hs.vim.annot b/test/testdata/liquid/.liquid/Evens.hs.vim.annot deleted file mode 100644 index 01f0e8ee5..000000000 --- a/test/testdata/liquid/.liquid/Evens.hs.vim.annot +++ /dev/null @@ -1,38 +0,0 @@ -1:1-1:1::Main.$trModule :: "GHC.Types.Module" -6:1-6:10::Main.weAreEven :: "[{v : GHC.Types.Int | v mod 2 == 0}]" -6:19-6:23::lq_anf$##7205759403792802156 :: "GHC.Types.Int" -6:20-6:21::_ :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}" -6:27-6:30::lq_anf$##7205759403792802159 :: "GHC.Types.Int" -6:28-6:29::_ :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}" -9:1-9:8::Main.notEven :: "{v : GHC.Types.Int | v mod 2 == 0}" -13:1-13:7::Main.isEven :: "x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0}" -15:12-15:15::_ :: "{v : x1:GHC.Types.Bool -> {v : GHC.Types.Bool | v <=> not x1} | v == GHC.Classes.not}" -15:17-15:23::Main.isEven :: "x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0}" -15:25-15:28::lq_anf$##7205759403792802146 :: "GHC.Types.Int" -15:26-15:27::_ :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 - x2}" -18:1-18:6::Main.evens :: "{v : GHC.Types.Int | v >= 0} -> [{v : GHC.Types.Int | v mod 2 == 0}]" -18:7-18:8::n :: "{v : GHC.Types.Int | v >= 0}" -18:11-18:41::lq_anf$##7205759403792802151 :: "{VV : [{VV : GHC.Types.Int | VV /= n\n && VV <= n\n && VV < n\n && VV >= 0\n && VV mod 2 == 0}] | len VV >= 0}" -18:21-18:26::_ :: "{v : x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}] | v == Main.range}" -18:32-18:38::_ :: "{v : x1:{v : GHC.Types.Int | v >= 0} -> {v : GHC.Types.Bool | v <=> x1 mod 2 == 0} | v == Main.isEven}" -21:1-21:6::Main.range :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}]" -21:7-21:9::lo :: "GHC.Types.Int" -21:10-21:12::hi :: "GHC.Types.Int" -22:5-22:12::lq_anf$##7205759403792802138 :: "{v : GHC.Types.Bool | v <=> lo < hi}" -22:8-22:9::_ :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Bool | v <=> x1 < x2}" -22:22-22:27::Main.range :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> [{v : GHC.Types.Int | x1 <= v\n && v < x2}]" -22:29-22:33::lq_anf$##7205759403792802141 :: "GHC.Types.Int" -22:31-22:32::_ :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}" -26:1-26:6::Main.shift :: "[{v : GHC.Types.Int | v mod 2 == 0}] -> {v : GHC.Types.Int | v mod 2 == 0} -> [{v : GHC.Types.Int | v mod 2 == 0}]" -26:7-26:9::xs :: "[{v : GHC.Types.Int | v mod 2 == 0}]" -26:10-26:11::k :: "{v : GHC.Types.Int | v mod 2 == 0}" -26:14-26:31::lq_anf$##7205759403792802137 :: "{VV : [{VV : GHC.Types.Int | VV mod 2 == 0}] | len VV <= len xs\n && len VV >= 0}" -26:15-26:20::lq_anf$##7205759403792802136 :: "GHC.Types.Int" -26:17-26:18::_ :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}" -29:1-29:7::Main.double :: "[{v : GHC.Types.Int | v >= 0}] -> [{v : GHC.Types.Int | v mod 2 == 0}]" -29:8-29:10::xs :: "[{v : GHC.Types.Int | v >= 0}]" -29:13-29:30::lq_anf$##7205759403792802134 :: "{VV : [{VV : GHC.Types.Int | VV >= 0\n && VV mod 2 == 0}] | len VV <= len xs\n && len VV >= 0}" -29:14-29:19::lq_anf$##7205759403792802133 :: "GHC.Types.Int" -29:16-29:17::_ :: "x1:GHC.Types.Int -> x2:GHC.Types.Int -> {v : GHC.Types.Int | v == x1 + x2}" -41:1-41:5:::Main.main :: "(GHC.Types.IO ())" -41:8-41:16::_ :: "{v : [GHC.Types.Char] -> (GHC.Types.IO ()) | v == System.IO.putStrLn}" \ No newline at end of file From 9f83cd5ee6fd24c11ef4abbe9fd161941ecd1b1a Mon Sep 17 00:00:00 2001 From: meck Date: Tue, 23 Oct 2018 16:38:06 +0200 Subject: [PATCH 2/2] Reorder tests and add executable test Reorder the test to endsure some liquid products are available in /test/testdata/liquid/.liquid at first run. Also add a test to see if the liquid haskell excutable is available. --- test/unit/LiquidSpec.hs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/test/unit/LiquidSpec.hs b/test/unit/LiquidSpec.hs index 6d51397c0..1945c89c2 100644 --- a/test/unit/LiquidSpec.hs +++ b/test/unit/LiquidSpec.hs @@ -8,6 +8,7 @@ import Data.List import qualified Data.Text as T import qualified Data.Text.IO as T import Data.Monoid ((<>)) +import Data.Maybe (isJust) import Haskell.Ide.Engine.MonadTypes import Haskell.Ide.Engine.Plugin.Liquid import System.Directory @@ -24,7 +25,20 @@ spec = do cwd <- runIO getCurrentDirectory -- --------------------------------- + it "finds liquid haskell exe in $PATH" $ findExecutable "liquid" >>= (`shouldSatisfy` isJust) + -- --------------------------------- + -- This produces some products in /test/testdata/liquid/.liquid/ that is used in subsequent test + it "runs the liquid haskell exe" $ do + let + fp = cwd "test/testdata/liquid/Evens.hs" + -- fp = "/home/alanz/tmp/haskell-proc-play/Evens.hs" + -- uri = filePathToUri fp + Just (ef, (msg:_)) <- runLiquidHaskell fp + msg `shouldSatisfy` isPrefixOf "RESULT\n[{\"start\":{\"line\":9,\"column\":1},\"stop\":{\"line\":9,\"column\":8},\"message\":\"Error: Liquid Type Mismatch\\n Inferred type\\n VV : {v : Int | v == (7 : int)}\\n \\n not a subtype of Required type\\n VV : {VV : Int | VV mod 2 == 0}\\n" + ef `shouldBe` ExitFailure 1 + + -- --------------------------------- it "gets annot file paths" $ do let uri = filePathToUri $ cwd "test/testdata/liquid/Evens.hs" @@ -107,14 +121,3 @@ spec = do n `shouldBe` Nothing -- --------------------------------- - - it "runs the liquid haskell exe" $ do - let - fp = cwd "test/testdata/liquid/Evens.hs" - -- fp = "/home/alanz/tmp/haskell-proc-play/Evens.hs" - -- uri = filePathToUri fp - Just (ef, (msg:_)) <- runLiquidHaskell fp - msg `shouldSatisfy` isPrefixOf "RESULT\n[{\"start\":{\"line\":9,\"column\":1},\"stop\":{\"line\":9,\"column\":8},\"message\":\"Error: Liquid Type Mismatch\\n Inferred type\\n VV : {v : Int | v == (7 : int)}\\n \\n not a subtype of Required type\\n VV : {VV : Int | VV mod 2 == 0}\\n" - ef `shouldBe` ExitFailure 1 - - -- ---------------------------------