Skip to content

Commit a0b97c0

Browse files
committed
fix(test): Replace #eval! with #eval in SSA tests
Use #eval instead of #eval! as recommended. The #eval! was a leftover from an earlier iteration that had sorry dependencies.
1 parent cb13e14 commit a0b97c0

2 files changed

Lines changed: 22 additions & 22 deletions

File tree

Strata/Transform/SSA.lean

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,28 +104,28 @@ def transformCmd (env : Env) (cmd : Command) : CoreTransformM (Env × List State
104104
| some info =>
105105
let freshId ← genSSAIdent name.name
106106
let some mty := LTy.toMonoType? info.ty
107-
| throw s!"SSA: type of '{name.name}' is not a monotype"
107+
| throw (Strata.DiagnosticModel.fromMessage s!"SSA: type of '{name.name}' is not a monotype")
108108
let env' := env.insert name.name { ident := freshId, ty := info.ty }
109109
incrementStat s!"{Stats.renamedVars}"
110110
return (env', [Statement.init freshId (.forAll [] mty) (.det expr') smd])
111-
| none => throw s!"SSA: variable '{name.name}' not found in environment (set)"
111+
| none => throw (Strata.DiagnosticModel.fromMessage s!"SSA: variable '{name.name}' not found in environment (set)")
112112
| .cmd (.set name .nondet smd) =>
113113
match env.get? name.name with
114114
| some info =>
115115
let freshId ← genSSAIdent name.name
116116
let some mty := LTy.toMonoType? info.ty
117-
| throw s!"SSA: type of '{name.name}' is not a monotype"
117+
| throw (Strata.DiagnosticModel.fromMessage s!"SSA: type of '{name.name}' is not a monotype")
118118
let env' := env.insert name.name { ident := freshId, ty := info.ty }
119119
incrementStat s!"{Stats.renamedVars}"
120120
return (env', [Statement.init freshId (.forAll [] mty) .nondet smd])
121-
| none => throw s!"SSA: variable '{name.name}' not found in environment (havoc)"
121+
| none => throw (Strata.DiagnosticModel.fromMessage s!"SSA: variable '{name.name}' not found in environment (havoc)")
122122
| .cmd (.assert label b amd) =>
123123
return (env, [Statement.assert label (rewriteExpr env b) amd])
124124
| .cmd (.assume label b amd) =>
125125
return (env, [Statement.assume label (rewriteExpr env b) amd])
126126
| .cmd (.cover label b cmd') =>
127127
return (env, [Statement.cover label (rewriteExpr env b) cmd'])
128-
| .call _ _ _ => throw "SSA: unexpected call command (callElim should have run first)"
128+
| .call _ _ _ => throw (Strata.DiagnosticModel.fromMessage "SSA: unexpected call command (callElim should have run first)")
129129

130130
private def collectAllKeys (envs : List Env) : List String :=
131131
let hs := envs.foldl (fun acc env =>
@@ -149,7 +149,7 @@ def emitJoinMerges (condVar : Expression.Ident)
149149
let elseId := getIdOr elseInfo preInfo origName
150150
let ty := getTyOr thenInfo elseInfo preInfo
151151
let some mty := LTy.toMonoType? ty
152-
| throw s!"SSA: type of '{origName}' is not a monotype at join point"
152+
| throw (Strata.DiagnosticModel.fromMessage s!"SSA: type of '{origName}' is not a monotype at join point")
153153
let freshId ← genSSAIdent origName
154154
let iteExpr : Expression.Expr :=
155155
Lambda.LExpr.ite () (createFvar condVar) (createFvar thenId) (createFvar elseId)
@@ -176,7 +176,7 @@ def emitNondetJoinHavocs (preEnv thenEnv elseEnv : Env)
176176
if varChanged thenInfo preInfo || varChanged elseInfo preInfo then
177177
let ty := getTyOr thenInfo elseInfo preInfo
178178
let some mty := LTy.toMonoType? ty
179-
| throw s!"SSA: type of '{origName}' is not a monotype at nondet join"
179+
| throw (Strata.DiagnosticModel.fromMessage s!"SSA: type of '{origName}' is not a monotype at nondet join")
180180
let freshId ← genSSAIdent origName
181181
havoces := havoces ++ [Statement.init freshId (.forAll [] mty) .nondet md]
182182
env := env.insert origName { ident := freshId, ty := ty }
@@ -214,7 +214,7 @@ partial def transformStmt (env : Env) (s : Statement) : CoreTransformM (Env × L
214214
let (mergedEnv, havoces) ← emitNondetJoinHavocs env thenEnv elseEnv md
215215
return (mergedEnv, [Stmt.ite .nondet thenStmts' elseStmts' md] ++ havoces)
216216
| .loop _ _ _ _ _ =>
217-
throw "SSA: unexpected loop statement (loopElim should have run first)"
217+
throw (Strata.DiagnosticModel.fromMessage "SSA: unexpected loop statement (loopElim should have run first)")
218218
| .exit label md => return (env, [Stmt.exit label md])
219219
| .funcDecl decl md => return (env, [Stmt.funcDecl decl md])
220220
| .typeDecl tc md => return (env, [Stmt.typeDecl tc md])

StrataTest/Transform/SSA.lean

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ procedure f(x : int, out y : int) {
4141

4242
/-- info: true -/
4343
#guard_msgs in
44-
#eval! do
44+
#eval do
4545
let pgm := translate SSATest1
4646
let result := runSSA pgm
4747
-- After SSA, the program should be different (variables renamed)
@@ -64,7 +64,7 @@ procedure f(c : bool, out y : int) {
6464

6565
/-- info: true -/
6666
#guard_msgs in
67-
#eval! do
67+
#eval do
6868
let pgm := translate SSATest2
6969
let result := runSSA pgm
7070
-- After SSA, should have more declarations (fresh variables + merges)
@@ -84,7 +84,7 @@ procedure f(out y : int) {
8484
set_option linter.unusedVariables false in
8585
/-- info: true -/
8686
#guard_msgs in
87-
#eval! do
87+
#eval do
8888
let pgm := translate SSATest3
8989
let _result := runSSA pgm
9090
return true
@@ -101,7 +101,7 @@ spec {
101101

102102
/-- info: true -/
103103
#guard_msgs in
104-
#eval! do
104+
#eval do
105105
let pgm := translate SSATest4
106106
let result := runSSA pgm
107107
return toString (Std.format result) == toString (Std.format pgm)
@@ -114,7 +114,7 @@ section SSATransformPassTests
114114
-- SSA can be applied via runTransforms
115115
/-- info: true -/
116116
#guard_msgs in
117-
#eval! do
117+
#eval do
118118
let pgm := translate SSATest1
119119
match Core.runTransforms pgm [.ssa] with
120120
| .ok result => return toString (Std.format result) != ""
@@ -136,7 +136,7 @@ procedure f(a : int, out b : int) {
136136

137137
/-- info: true -/
138138
#guard_msgs in
139-
#eval! do
139+
#eval do
140140
let pgm := translate SSATestPipeline
141141
match Core.runTransforms pgm [.callElim, .ssa] with
142142
| .ok result => return toString (Std.format result) != ""
@@ -168,7 +168,7 @@ procedure f(c1 : bool, c2 : bool, out y : int) {
168168

169169
/-- info: true -/
170170
#guard_msgs in
171-
#eval! do
171+
#eval do
172172
let pgm := translate SSATestNestedIte
173173
let result := runSSA pgm
174174
return toString (Std.format result) != toString (Std.format pgm)
@@ -191,7 +191,7 @@ procedure f(c : bool, out r : int) {
191191

192192
/-- info: true -/
193193
#guard_msgs in
194-
#eval! do
194+
#eval do
195195
let pgm := translate SSATestOneBranchModifies
196196
let result := runSSA pgm
197197
return toString (Std.format result) != toString (Std.format pgm)
@@ -211,7 +211,7 @@ procedure f(out y : int) {
211211

212212
/-- info: true -/
213213
#guard_msgs in
214-
#eval! do
214+
#eval do
215215
let pgm := translate SSATestMultiAssign
216216
let result := runSSA pgm
217217
return toString (Std.format result) != toString (Std.format pgm)
@@ -232,7 +232,7 @@ procedure f(x : int, out y : int) {
232232
set_option linter.unusedVariables false in
233233
/-- info: true -/
234234
#guard_msgs in
235-
#eval! do
235+
#eval do
236236
let pgm := translate SSATestAssertAssume
237237
let _result := runSSA pgm
238238
return true
@@ -252,7 +252,7 @@ procedure f(out y : int) {
252252
set_option linter.unusedVariables false in
253253
/-- info: true -/
254254
#guard_msgs in
255-
#eval! do
255+
#eval do
256256
let pgm := translate SSATestHavocThenSet
257257
let _result := runSSA pgm
258258
return true
@@ -269,7 +269,7 @@ procedure f(inout g : int) {
269269
set_option linter.unusedVariables false in
270270
/-- info: true -/
271271
#guard_msgs in
272-
#eval! do
272+
#eval do
273273
let pgm := translate SSATestInout
274274
let _result := runSSA pgm
275275
return true
@@ -292,7 +292,7 @@ procedure g(x : int, out y : int) {
292292

293293
/-- info: true -/
294294
#guard_msgs in
295-
#eval! do
295+
#eval do
296296
let pgm := translate SSATestMultiProc
297297
let result := runSSA pgm
298298
-- Both procedures should be transformed
@@ -314,7 +314,7 @@ procedure f(c : bool, out y : int) {
314314

315315
/-- info: true -/
316316
#guard_msgs in
317-
#eval! do
317+
#eval do
318318
let pgm := translate SSATestElseOnly
319319
let result := runSSA pgm
320320
return toString (Std.format result) != toString (Std.format pgm)

0 commit comments

Comments
 (0)