on master help sign in
add error on used names for views
commit263425c930c7d6147dd87a61c2083fccdb83705b authorAgentM <agentm@themactionfaction.com> dateWed 25 Jul 2018, 23:37 (8 years ago) parentbb5afab
1 file changed+6−4
src/lib/ProjectM36/RelationalExpression.hs+6−4
src/lib/ProjectM36/RelationalExpression.hs+6−4
@@ -216,11 +216,13 @@ evalRelationalExpr (Equals relExprA relExprB) = do
216216
217217evalRelationalExpr (With views mainExpr) = do
218218 rstate <- ask
219− --let ctx = stateElemsContext rstate
220219
221− let addScopedView ctx (vname,vexpr) = case runState (evalDatabaseContextExpr (Assign vname vexpr)) (freshDatabaseState ctx) of
222− (Left err,_) -> (Left err)
223− (Right (), elems@(ctx',_,_)) -> (Right ctx')
220+ let addScopedView ctx (vname,vexpr) = if vname `M.member` relationVariables ctx then
221+ Left (RelVarAlreadyDefinedError vname)
222+ else
223+ case runState (evalDatabaseContextExpr (Assign vname vexpr)) (freshDatabaseState ctx) of
224+ (Left err,_) -> Left err
225+ (Right (), (ctx',_,_)) -> Right ctx'
224226
225227 case foldM addScopedView (stateElemsContext rstate) views of
226228 Left err -> return $ Left err