whiley_test_file 0.6.2

An API for manipulating test files for the Whiley Programming Language.
Documentation
original.name="RecursiveType_Valid_26"
======
>>> main.whiley


type Expr is bool | {int data, Expr lhs} | Expr[]

type SubExpr is bool | {int data, SubExpr lhs}

function toString(Expr e) -> int:
    if e is SubExpr:
        if e is bool:
            return 0
        else:
            return 1
    else:
        return -1

public export method test() :
    SubExpr se1 = false
    SubExpr se2 = {data: 1, lhs: se1}
    SubExpr se3 = {data: 45, lhs: se2}
    Expr e1 = [se1]
    Expr e2 = [e1, se1, se2]
    assume toString(se1) == 0
    assume toString(se2) == 1
    assume toString(se3) == 1
    assume toString(e1) == -1
    assume toString(e2) == -1

---