X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Fc%CE%BBash.git;a=blobdiff_plain;f=clash%2FCLasH%2FNormalize%2FNormalizeTools.hs;h=eff8b67db39798b020e8523d8f28524cc8efaa4f;hp=cdb7ee01352a85fca6cf080de9019259c359d632;hb=9acc6fbecd5b8c65c1efa6ac4971adbafada05cd;hpb=b149566951240b283ca05fd1fe5447f0801d6b99 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?