consumer_link_diagnostics.tri (918B)
1 -- Source-link parse failures retain alias and verified source position. 2 !import "consumers.module" M 3 !import "consumers.link" CL 4 !import "parser" P 5 !import "lexer" Position 6 !import "prelude" !Local 7 !import "io" !Local 8 root = "__ROOT__" 9 stage = do onOk_ 10 hash <- M.cmPutSource root "consumer broken\n $" 11 M.cmPutImports root [(pair "broken" (pair hash "broken"))] 12 main = io (onResult_ stage 13 (_ : putStrLn "link-diagnostics-STAGE-ERROR") 14 (descriptor : onResult_ (CL.clPrepare root descriptor [(pair "broken" t)]) 15 (failure : putStrLn (matchBool "link-diagnostics-ok" "link-diagnostics-DIFFER" 16 (and? (equal? (fst failure) "broken") 17 (and? (equal? (Position.lexerPositionLine 18 (P.parserDiagnosticLocation (snd failure))) 2) 19 (equal? (Position.lexerPositionColumn 20 (P.parserDiagnosticLocation (snd failure))) 3))))) 21 (_ : putStrLn "link-diagnostics-ACCEPTED"))) 22 main