--- /dev/null
+#! [contains] 1
+class C { 10 => int i; }
+
+operator @conditionnal int(C c) {
+ <<< __func__ >>>;
+ --c.i;
+ return c.i;
+}
+
+C c;
+while(c) <<<c.i>>>;
--- /dev/null
+#! [contains] 12
+class C {
+ 12 => int i;
+}
+
+operator @implicit int (C c) {
+ return c.i;
+}
+
+fun void test(int i) { <<< i >>>; }
+C c;
+c => test;
--- /dev/null
+#! [contains] 1
+class C { 10 => int i; }
+
+operator @unconditionnal int(C c) {
+ <<< __func__ >>>;
+ --c.i;
+ return !c.i;
+}
+
+C c;
+until(c) <<<c.i>>>;