簡単実装の方も同じことをやるようにしてみた

(こんどこそできたー - 気楽に諸々 の続き)

macro Connect:
    assert len(Connect.Arguments) == 1
    assert Connect.Arguments[0] isa BinaryExpression
    
    connectableAssignExpression as BinaryExpression = Connect.Arguments[0]
    assert connectableAssignExpression.Operator == BinaryOperatorType.Assign
    connectableReferenceExpression as ReferenceExpression = connectableAssignExpression.Left
    
    return [|
        $(connectableAssignExpression)
        try:
            $(connectableReferenceExpression).Open()
            $(Connect.Block)
        ensure:
            $(connectableReferenceExpression).Close()
    |]