Skip to content

Commit 5c08e37

Browse files
committed
Fix missing stack trace entry for assertions.
Fixes #467
1 parent 372c2ad commit 5c08e37

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

internal/program/desugarer.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,9 +339,14 @@ func desugar(astPtr *ast.Node, objLevel int) (err error) {
339339
node.Message = buildLiteralString("Assertion failed")
340340
}
341341
*astPtr = &ast.Conditional{
342-
Cond: node.Cond,
343-
BranchTrue: node.Rest,
344-
BranchFalse: &ast.Error{Expr: node.Message},
342+
Cond: node.Cond,
343+
BranchTrue: node.Rest,
344+
BranchFalse: &ast.Error{
345+
NodeBase: ast.NodeBase{
346+
LocRange: *node.Loc(),
347+
},
348+
Expr: node.Message,
349+
},
345350
}
346351
err = desugar(astPtr, objLevel)
347352
if err != nil {

testdata/assert3.golden

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
RUNTIME ERROR: Assertion failed
22
-------------------------------------------------
3-
3+
testdata/assert3:1:1-20
4+
5+
assert 42 != 42; 42
46

57
-------------------------------------------------
68
During evaluation

testdata/assert_failed.golden

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
RUNTIME ERROR: Assertion failed
22
-------------------------------------------------
3-
3+
testdata/assert_failed:1:1-19
4+
5+
assert false; true
46

57
-------------------------------------------------
68
During evaluation

testdata/assert_failed_custom.golden

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
RUNTIME ERROR: Custom Message
22
-------------------------------------------------
3-
3+
testdata/assert_failed_custom:1:1-38
4+
5+
assert false : "Custom Message"; true
46

57
-------------------------------------------------
68
During evaluation

0 commit comments

Comments
 (0)