diff --git a/desugarer.go b/desugarer.go index 3f1453f..c3c92f6 100644 --- a/desugarer.go +++ b/desugarer.go @@ -349,6 +349,10 @@ func desugar(astPtr *ast.Node, objLevel int) (err error) { BranchTrue: node.Rest, BranchFalse: &ast.Error{Expr: node.Message}, } + err = desugar(astPtr, objLevel) + if err != nil { + return err + } case *ast.Binary: // some operators get replaced by stdlib functions diff --git a/testdata/assert2.golden b/testdata/assert2.golden new file mode 100644 index 0000000..27ba77d --- /dev/null +++ b/testdata/assert2.golden @@ -0,0 +1 @@ +true diff --git a/testdata/assert2.input b/testdata/assert2.input new file mode 100644 index 0000000..c74d1ac --- /dev/null +++ b/testdata/assert2.input @@ -0,0 +1 @@ +assert 42 == 42; true diff --git a/testdata/assert3.golden b/testdata/assert3.golden new file mode 100644 index 0000000..57b9b74 --- /dev/null +++ b/testdata/assert3.golden @@ -0,0 +1 @@ +RUNTIME ERROR: Assertion failed diff --git a/testdata/assert3.input b/testdata/assert3.input new file mode 100644 index 0000000..98aeb87 --- /dev/null +++ b/testdata/assert3.input @@ -0,0 +1 @@ +assert 42 != 42; 42 diff --git a/testdata/equals.golden b/testdata/equals.golden new file mode 100644 index 0000000..27ba77d --- /dev/null +++ b/testdata/equals.golden @@ -0,0 +1 @@ +true diff --git a/testdata/equals.input b/testdata/equals.input new file mode 100644 index 0000000..dc52ba1 --- /dev/null +++ b/testdata/equals.input @@ -0,0 +1 @@ +42 == 42