on master help sign in
add error on used names for views
263425cAgentM
src/lib/ProjectM36/RelationalExpression.hs+6−4
@@ -216,11 +216,13 @@ evalRelationalExpr (Equals relExprA relExprB) = do
216
216
217evalRelationalExpr (With views mainExpr) = do
217evalRelationalExpr (With views mainExpr) = do
218 rstate <- ask
218 rstate <- ask
219− --let ctx = stateElemsContext rstate
220
219
220+ let addScopedView ctx (vname,vexpr) = if vname `M.member` relationVariables ctx then
221+ Left (RelVarAlreadyDefinedError vname)
222+ else
221− let addScopedView ctx (vname,vexpr) = case runState (evalDatabaseContextExpr (Assign vname vexpr)) (freshDatabaseState ctx) of
223+ case runState (evalDatabaseContextExpr (Assign vname vexpr)) (freshDatabaseState ctx) of
222− (Left err,_) -> (Left err)
224+ (Left err,_) -> Left err
223− (Right (), elems@(ctx',_,_)) -> (Right ctx')
225+ (Right (), (ctx',_,_)) -> Right ctx'
224
226
225 case foldM addScopedView (stateElemsContext rstate) views of
227 case foldM addScopedView (stateElemsContext rstate) views of
226 Left err -> return $ Left err
228 Left err -> return $ Left err