32f5d5dea7
This changes with syntax from (with [[x (expr)] (expr)] ...) to (with [x (expr) (expr)] ...). Should have no ill side effects apart from the syntax change. Closes #852. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
42 lines
952 B
Hy
42 lines
952 B
Hy
(defclass WithTest [object]
|
|
(defn --init-- [self val]
|
|
(setv self.val val)
|
|
None)
|
|
|
|
(defn --enter-- [self]
|
|
self.val)
|
|
|
|
(defn --exit-- [self type value traceback]
|
|
(setv self.val None)))
|
|
|
|
(defn test-single-with []
|
|
"NATIVE: test a single with"
|
|
(with [t (WithTest 1)]
|
|
(assert (= t 1))))
|
|
|
|
(defn test-two-with []
|
|
"NATIVE: test two withs"
|
|
(with [t1 (WithTest 1)
|
|
t2 (WithTest 2)]
|
|
(assert (= t1 1))
|
|
(assert (= t2 2))))
|
|
|
|
(defn test-thrice-with []
|
|
"NATIVE: test three withs"
|
|
(with [t1 (WithTest 1)
|
|
t2 (WithTest 2)
|
|
t3 (WithTest 3)]
|
|
(assert (= t1 1))
|
|
(assert (= t2 2))
|
|
(assert (= t3 3))))
|
|
|
|
(defn test-quince-with []
|
|
"NATIVE: test four withs, one with no args"
|
|
(with [t1 (WithTest 1)
|
|
t2 (WithTest 2)
|
|
t3 (WithTest 3)
|
|
_ (WithTest 4)]
|
|
(assert (= t1 1))
|
|
(assert (= t2 2))
|
|
(assert (= t3 3))))
|