Also inline functions named "fromInteger".
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 09:58:00 +0000 (11:58 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 09:58:00 +0000 (11:58 +0200)
cλash/CLasH/Normalize/NormalizeTools.hs

index e4d22f32a42134cf66be625c0906ef57985ad971..2d2a9068bd8b0d8042aeba6ea60eb4f342916783 100644 (file)
@@ -193,6 +193,11 @@ is_local_var _ = return False
 isUserDefined :: CoreSyn.CoreBndr -> Bool
 -- System names are certain to not be user defined
 isUserDefined bndr | Name.isSystemName (Id.idName bndr) = False
--- Assume everything else is user defined
-isUserDefined bdnr = True
-
+-- Check a list of typical compiler-defined names
+isUserDefined bndr = str `elem` compiler_names
+  where
+    str = Name.getOccString bndr
+    -- These are names of bindings usually generated by the compiler. For some
+    -- reason these are not marked as system, probably because the name itself
+    -- is not made up by the compiler, just this particular binding is.
+    compiler_names = ["fromInteger"]