summaryrefslogtreecommitdiff
path: root/testsuite/tests/simplCore/should_run/simplrun008.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/simplCore/should_run/simplrun008.hs')
-rw-r--r--testsuite/tests/simplCore/should_run/simplrun008.hs18
1 files changed, 18 insertions, 0 deletions
diff --git a/testsuite/tests/simplCore/should_run/simplrun008.hs b/testsuite/tests/simplCore/should_run/simplrun008.hs
new file mode 100644
index 0000000000..782f0e40ac
--- /dev/null
+++ b/testsuite/tests/simplCore/should_run/simplrun008.hs
@@ -0,0 +1,18 @@
+
+module Main where
+import Data.Char
+
+{-# NOINLINE f #-}
+f :: Int -> String
+f x = "NOT FIRED"
+
+{-# NOINLINE neg #-}
+neg :: Int -> Int
+neg = negate
+
+{-# RULES
+ "f" forall (c::Char->Int) (x::Char). f (c x) = "RULE FIRED"
+ #-}
+
+main = do { print (f (ord 'a')) -- Rule should fire
+ ; print (f (neg 1)) } -- Rule should not fire