X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=clash%2FCLasH%2FNormalize%2FNormalizeTools.hs;h=eff8b67db39798b020e8523d8f28524cc8efaa4f;hb=82a01c9291c350ee8aeae80d62d6a45f7fb50940;hp=cdb7ee01352a85fca6cf080de9019259c359d632;hpb=04f836932ad17dd557af0ba388a12d2b74c1e7d7;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/clash/CLasH/Normalize/NormalizeTools.hs b/clash/CLasH/Normalize/NormalizeTools.hs index cdb7ee0..eff8b67 100644 --- a/clash/CLasH/Normalize/NormalizeTools.hs +++ b/clash/CLasH/Normalize/NormalizeTools.hs @@ -216,7 +216,10 @@ isRepr' tything = case CoreTools.getType tything of is_local_var :: CoreSyn.CoreExpr -> TranslatorSession Bool is_local_var (CoreSyn.Var v) = do bndrs <- getGlobalBinders - return $ v `notElem` bndrs + -- A datacon id is not a global binder, but not a local variable + -- either. + let is_dc = Id.isDataConWorkId v + return $ not is_dc && v `notElem` bndrs is_local_var _ = return False -- Is the given binder defined by the user?