mpickering / haskell-ide-engine

The engine for haskell ide-integration. Not an IDE
BSD 3-Clause "New" or "Revised" License
2 stars 1 forks source link

Track changes to persistVirtualFile in haskell-lsp #67

Closed mpickering closed 4 years ago

mpickering commented 4 years ago

See https://github.com/alanz/haskell-lsp/pull/204

alanz commented 4 years ago

LGTM, this bring in the opaque type for the virtual file too.

mpickering commented 4 years ago

@fendor These are the current failing tests with this branch for me locally.

test/functional/CompletionSpec.hs:35:7: 
  1) Completion.completions works
       expected: Just "String -> IO ()\nPrelude"
        but got: Just "Prelude"

  To rerun use: --match "/Completion/completions/works/"

  test/functional/CompletionSpec.hs:206:7: 
  2) Completion.completions have implicit foralls on basic polymorphic types
       expected: Just "a -> a\nPrelude"
        but got: Just "Prelude"

  To rerun use: --match "/Completion/completions/have implicit foralls on basic polymorphic types/"

  test/functional/CompletionSpec.hs:218:7: 
  3) Completion.completions have implicit foralls with multiple type variables
       expected: Just "(a -> b -> c) -> b -> a -> c\nPrelude"
        but got: Just "Prelude"

  To rerun use: --match "/Completion/completions/have implicit foralls with multiple type variables/"

  test/functional/CompletionSpec.hs:249:9: 
  4) Completion.completions.snippets work for polymorphic types
       expected: Just "foldl ${1:b -> a -> b} ${2:b} ${3:t a}"
        but got: Nothing

  To rerun use: --match "/Completion/completions/snippets/work for polymorphic types/"

  test/functional/CompletionSpec.hs:266:9: 
  5) Completion.completions.snippets work for complex types
       expected: Just "mapM ${1:a -> m b} ${2:t a}"
        but got: Nothing

  To rerun use: --match "/Completion/completions/snippets/work for complex types/"

  test/functional/DiagnosticsSpec.hs:72:5: 
  6) Diagnostics, diagnostics providers, Warnings are warnings, Overrides -Werror
       uncaught exception: SessionException
       Timed out waiting to receive a message from the server.
       Last message received:
       {
           "tag": "NotPublishDiagnostics",
           "contents": {
               "jsonrpc": "2.0",
               "params": {
                   "uri": "file:///home/matt/haskell-ide-engine/test/testdata/wErrorTest/src/WError.hs",
                   "diagnostics": []
               },
               "method": "textDocument/publishDiagnostics"
           }
       }

  To rerun use: --match "/Diagnostics/diagnostics providers/Warnings are warnings/Overrides -Werror/"

  test/functional/FunctionalCodeActionsSpec.hs:677:9: 
  7) FunctionalCodeActions, code actions, import suggestions, formats with brittany, Execute HsImport with formatter brittany, complex import-list
       expected: ["{-# LANGUAGE NoImplicitPrelude #-}","import           System.IO                      ( IO","                                                , hPutStrLn","                                                , stderr","                                                )","import           Prelude                        ( Bool(..) )","import           Control.Monad                  ( when )","import           Data.Function                  ( ($) )","import           Data.Maybe                     ( fromMaybe","                                                , Maybe(Just)","                                                )","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]
        but got: ["{-# LANGUAGE NoImplicitPrelude #-}","import           System.IO                      ( IO","                                                , hPutStrLn","                                                , stderr","                                                )","import           Prelude                        ( Bool(..) )","import           Data.Function                  ( ($) )","import           Data.Maybe                     ( fromMaybe","                                                , Maybe(Just)","                                                )","import           Control.Monad                  ( when )","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]

  To rerun use: --match "/FunctionalCodeActions/code actions/import suggestions/formats with brittany/Execute HsImport with formatter brittany/complex import-list/"

  test/functional/FunctionalCodeActionsSpec.hs:698:9: 
  8) FunctionalCodeActions, code actions, import suggestions, formats with brittany, Execute HsImport with formatter brittany, complex import-list respects format config
       expected: ["{-# LANGUAGE NoImplicitPrelude #-}","import System.IO (IO, hPutStrLn, stderr)","import Prelude (Bool(..))","import Control.Monad (when)","import Data.Function (($))","import Data.Maybe (fromMaybe, Maybe(Just))","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]
        but got: ["{-# LANGUAGE NoImplicitPrelude #-}","import System.IO (IO, hPutStrLn, stderr)","import Prelude (Bool(..))","import Data.Function (($))","import Data.Maybe (fromMaybe, Maybe(Just))","import Control.Monad (when)","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]

  To rerun use: --match "/FunctionalCodeActions/code actions/import suggestions/formats with brittany/Execute HsImport with formatter brittany/complex import-list respects format config/"

  test/functional/FunctionalCodeActionsSpec.hs:677:9: 
  9) FunctionalCodeActions, code actions, import suggestions, formats with floskell, Execute HsImport with formatter floskell, complex import-list
       expected: ["{-# LANGUAGE NoImplicitPrelude #-}","import           System.IO (IO, hPutStrLn, stderr)","import           Prelude (Bool(..))","import           Control.Monad (when)","import           Data.Function (($))","import           Data.Maybe (fromMaybe, Maybe(Just))","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]
        but got: ["{-# LANGUAGE NoImplicitPrelude #-}","import           System.IO (IO, hPutStrLn, stderr)","import           Prelude (Bool(..))","import           Data.Function (($))","import           Data.Maybe (fromMaybe, Maybe(Just))","import           Control.Monad (when)","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]

  To rerun use: --match "/FunctionalCodeActions/code actions/import suggestions/formats with floskell/Execute HsImport with formatter floskell/complex import-list/"

  test/functional/FunctionalCodeActionsSpec.hs:698:9: 
  10) FunctionalCodeActions, code actions, import suggestions, formats with floskell, Execute HsImport with formatter floskell, complex import-list respects format config
       expected: ["{-# LANGUAGE NoImplicitPrelude #-}","import System.IO (IO, hPutStrLn, stderr)","import Prelude (Bool(..))","import Control.Monad (when)","import Data.Function (($))","import Data.Maybe (fromMaybe, Maybe(Just))","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]
        but got: ["{-# LANGUAGE NoImplicitPrelude #-}","import System.IO (IO, hPutStrLn, stderr)","import Prelude (Bool(..))","import Data.Function (($))","import Data.Maybe (fromMaybe, Maybe(Just))","import Control.Monad (when)","-- | Main entry point to the program","main :: IO ()","main =","    when True","        $ hPutStrLn stderr","        $ fromMaybe \"Good night, World!\" (Just \"Hello, World!\")"]

  To rerun use: --match "/FunctionalCodeActions/code actions/import suggestions/formats with floskell/Execute HsImport with formatter floskell/complex import-list respects format config/"

  test/functional/FunctionalCodeActionsSpec.hs:215:5: 
  11) FunctionalCodeActions, code actions, add package suggestions, adds to .cabal files
       uncaught exception: SessionException
       Received an unexpected message from the server:
       Was parsing: Pattern match failure in do expression at test/functional/FunctionalCodeActionsSpec.hs:221:9-18
       Last message received:
       {
           "tag": "NotPublishDiagnostics",
           "contents": {
               "jsonrpc": "2.0",
               "params": {
                   "uri": "file:///home/matt/haskell-ide-engine/test/testdata/addPackageTest/cabal-exe/AddPackage.hs",
                   "diagnostics": []
               },
               "method": "textDocument/publishDiagnostics"
           }
       }

  To rerun use: --match "/FunctionalCodeActions/code actions/add package suggestions/adds to .cabal files/"

  test/functional/FunctionalCodeActionsSpec.hs:277:5: 
  12) FunctionalCodeActions, code actions, redundant import code actions, remove solitary redundant imports
       uncaught exception: SessionException
       Received an unexpected message from the server:
       Was parsing: Pattern match failure in do expression at test/functional/FunctionalCodeActionsSpec.hs:282:9-18
       Last message received:
       {
           "tag": "NotPublishDiagnostics",
           "contents": {
               "jsonrpc": "2.0",
               "params": {
                   "uri": "file:///home/matt/haskell-ide-engine/test/testdata/redundantImportTest/src/CodeActionRedundant.hs",
                   "diagnostics": []
               },
               "method": "textDocument/publishDiagnostics"
           }
       }

  To rerun use: --match "/FunctionalCodeActions/code actions/redundant import code actions/remove solitary redundant imports/"

  test/functional/FunctionalCodeActionsSpec.hs:307:5: 
  13) FunctionalCodeActions, code actions, redundant import code actions, doesn't touch other imports
       uncaught exception: SessionException
       Received an unexpected message from the server:
       Was parsing: Pattern match failure in do expression at test/functional/FunctionalCodeActionsSpec.hs:312:7-24
       Last message received:
       {
           "tag": "NotPublishDiagnostics",
           "contents": {
               "jsonrpc": "2.0",
               "params": {
                   "uri": "file:///home/matt/haskell-ide-engine/test/testdata/redundantImportTest/src/MultipleImports.hs",
                   "diagnostics": []
               },
               "method": "textDocument/publishDiagnostics"
           }
       }

  To rerun use: --match "/FunctionalCodeActions/code actions/redundant import code actions/doesn't touch other imports/"

  test/functional/FunctionalCodeActionsSpec.hs:337:26: 
  14) FunctionalCodeActions, code actions, typed hole code actions, works
       Actual list is not a permutation of expected list!
         expected list contains:   ["Substitute hole (Int) with x ([Int])", "Substitute hole (Int) with foo ([Int] -> Int)", "Substitute hole (Int) with maxBound (forall a. Bounded a => a with maxBound @Int)", "Substitute hole (Int) with minBound (forall a. Bounded a => a with minBound @Int)"]
         actual list contains:     ["Substitute hole (Int) with x ([Int])", "Substitute hole (Int) with foo ([Int] -> Int Valid hole fits include)", "Substitute hole (Int) with maxBound (forall a. Bounded a => a with maxBound @Int)", "Substitute hole (Int) with minBound (forall a. Bounded a => a with minBound @Int)"]
         the missing elements are: ["Substitute hole (Int) with foo ([Int] -> Int)"]
         the extra elements are:   ["Substitute hole (Int) with foo ([Int] -> Int Valid hole fits include)"]

  To rerun use: --match "/FunctionalCodeActions/code actions/typed hole code actions/works/"

  test/functional/FunctionalLiquidSpec.hs:67:5: 
  15) FunctionalLiquid, liquid haskell diagnostics, runs diagnostics on save, with liquid haskell
       uncaught exception: SessionException
       Timed out waiting to receive a message from the server.
       Last message received:
       {
           "tag": "NotPublishDiagnostics",
           "contents": {
               "jsonrpc": "2.0",
               "params": {
                   "uri": "file:///home/matt/haskell-ide-engine/test/testdata/liquid/Evens.hs",
                   "diagnostics": []
               },
               "method": "textDocument/publishDiagnostics"
           }
       }

  To rerun use: --match "/FunctionalLiquid/liquid haskell diagnostics/runs diagnostics on save, with liquid haskell/"

  test/functional/HieBiosSpec.hs:18:3: 
  16) HieBios.hie-bios reports errors in hie.yaml
       uncaught exception: ConduitParserException
       NamedParserException "Logging notification" (BothFailed (Unexpected "ConduitParser.empty") (NamedParserException "Logging notification" (BothFailed (Unexpected "ConduitParser.empty") (NamedParserException "Logging notification" (BothFailed (Unexpected "ConduitParser.empty") (Unexpected "ConduitParser.empty"))))))

  To rerun use: --match "/HieBios/hie-bios/reports errors in hie.yaml/"

  test/functional/ProgressSpec.hs:20:3: 
  17) Progress.window/workDoneProgress sends indefinite progress notifications
       uncaught exception: SessionException
       Received an unexpected message from the server:
       Was parsing: NotificationMessage ServerMethod (ProgressParams WorkDoneProgressReportParams)
       Last message received:
       {
           "tag": "NotWorkDoneProgressEnd",
           "contents": {
               "jsonrpc": "2.0",
               "params": {
                   "value": {
                       "kind": "end"
                   },
                   "token": 0
               },
               "method": "$/progress"
           }
       }

  To rerun use: --match "/Progress/window/workDoneProgress/sends indefinite progress notifications/"

  test/functional/ProgressSpec.hs:74:3: 
  18) Progress.window/workDoneProgress sends indefinite progress notifications with liquid
       uncaught exception: SessionException
       Received an unexpected message from the server:
       Was parsing: NotificationMessage ServerMethod (ProgressParams WorkDoneProgressReportParams)
       Last message received:
       {
           "tag": "NotWorkDoneProgressEnd",
           "contents": {
               "jsonrpc": "2.0",
               "params": {
                   "value": {
                       "kind": "end"
                   },
                   "token": 0
               },
               "method": "$/progress"
           }
       }

  To rerun use: --match "/Progress/window/workDoneProgress/sends indefinite progress notifications with liquid/"

Randomized with seed 1427967900