summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Svedäng <erik@coherence.io>2021-10-12 15:35:52 +0200
committerErik Svedäng <erik@coherence.io>2021-10-12 15:36:11 +0200
commita2731eaeccefa4ab0eca6f83dd0b3beefa335aac (patch)
tree4dc0bbe87590b5e4ee59e4f03499028231317e55
parent998948ec6bda50f4dd414c48a3ab34b408411e8c (diff)
fix: use StaticLifetimeTy to avoid duplicate function types (solves #1318)fix-1318
-rw-r--r--src/GenerateConstraints.hs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/GenerateConstraints.hs b/src/GenerateConstraints.hs
index 9fe9cbe7..be95b57c 100644
--- a/src/GenerateConstraints.hs
+++ b/src/GenerateConstraints.hs
@@ -246,7 +246,7 @@ genConstraints _ root rootSig = fmap sort (gen root)
retConstraint = Constraint xobjTy' retTy xobj func xobj OrdFuncAppRet
in pure (retConstraint : funcConstraints ++ argConstraints ++ variablesConstraints)
funcVarTy@(VarTy _) ->
- let fabricatedFunctionType = FuncTy (List.map forceTy args) (forceTy xobj) (VarTy "what?!")
+ let fabricatedFunctionType = FuncTy (List.map forceTy args) (forceTy xobj) StaticLifetimeTy
expected = XObj (Sym (SymPath [] ("Calling '" ++ getName func ++ "'")) Symbol) (xobjInfo func) Nothing
wholeTypeConstraint = Constraint funcVarTy fabricatedFunctionType func expected xobj OrdFuncAppVarTy
in pure (wholeTypeConstraint : funcConstraints ++ variablesConstraints)
@@ -321,7 +321,7 @@ genConstraintsForCaseMatcher matchMode = gen
retConstraint = Constraint xobjTy' retTy xobj caseName xobj OrdFuncAppRet
in pure (retConstraint : caseNameConstraints ++ argConstraints ++ variablesConstraints)
funcVarTy@(VarTy _) ->
- let fabricatedFunctionType = FuncTy (List.map forceTy variables) (forceTy xobj) (VarTy "what?!") -- TODO: Fix
+ let fabricatedFunctionType = FuncTy (List.map forceTy variables) (forceTy xobj) StaticLifetimeTy
expected = XObj (Sym (SymPath [] ("Matchin on '" ++ getName caseName ++ "'")) Symbol) (xobjInfo caseName) Nothing
wholeTypeConstraint = Constraint funcVarTy fabricatedFunctionType caseName expected xobj OrdFuncAppVarTy
in pure (wholeTypeConstraint : caseNameConstraints ++ variablesConstraints)