packages feed

purescript-0.13.3: tests/purs/bundle/3551.purs

module Main where

import Prelude
import Effect (Effect)
import Effect.Console (error, log)

import ModuleWithDeadCode (class FooBar, exportThatUsesBar, results)

main :: Effect Unit
main = do
  when results.barIsExported $ error "bar is exported"
  when results.fooIsNotEliminated $ error "foo is not eliminated"

  -- These are brittleness canaries; if they fail, then the compiler output has
  -- probably changed such that the above checks are not doing their job.
  unless results.exportThatUsesBarIsExported $
    error "likely test error: check that barIsExported is working"
  unless results.barIsNotEliminated $
    error "likely test error: check that fooIsNotEliminated is working"

  when (exportThatUsesBar 0) $ log "Done"