summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-api/show-srcspan/showsrcspan.hs
blob: 01b0bc1a8f22a5c559f71681ac6e52d5c215dc59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module Main where

import Data.Data
import System.IO
import GHC
import GHC.Data.FastString
import GHC.Types.SrcLoc
import GHC.Utils.Monad
import GHC.Utils.Outputable
import GHC.Data.Bag (filterBag,isEmptyBag)
import System.Directory (removeFile)
import System.Environment( getArgs )

main::IO()
main = do
  let
    loc1 = mkSrcLoc (mkFastString "filename") 1 3
    loc2 = mkSrcLoc (mkFastString "filename") 1 5
    loc3 = mkSrcLoc (mkFastString "filename") 10 1
    badLoc = mkGeneralSrcLoc (mkFastString "bad loc")

    pointSpan = mkSrcSpan loc1 loc1
    lineSpan  = mkSrcSpan loc1 loc2
    multiSpan = mkSrcSpan loc2 loc3
    badSpan  = mkGeneralSrcSpan (mkFastString "bad span")

  print $ show loc1
  print $ show loc2
  print $ show badLoc
  print $ show pointSpan
  print $ show lineSpan
  print $ show multiSpan
  print $ show badSpan