I believe that both of the assertions should pass, and "returning implicit" should be called twice.
Only happens once, instead.
**Code:
"""
returning implicit
returning implicit
"""
class test(IQuackFu):
def QuackSet(name as string, obj):
pass
def QuackGet(name as string):
return
def QuackInvoke(name as string, *args as (object)):
print 'entered invoke'
static def op_Implicit(arg as test) as bool:
print 'returning implicit'
return false
first = test()
assert not first
second as duck = test()
assert not second #assertion has FAILED; op_Implicit wasn't called, or went through QuackInvoke
**Output:
returning implicit